Podłączasz LoRA i dostajesz gotowy portret, który wygląda dokładnie jak ten z modelu bazowego. Samo pomyślne wykonanie zadania nie pokazuje, czy adapter wpłynął na obraz. Aby to sprawdzić, uruchom ten sam prompt z tym samym seed trzy razy: dwa razy bez LoRA i raz z nim. Trzy wyniki kosztują 0,036 $ przy cenie 0,012 $ za obraz. Porównaj je, aby zobaczyć, czy zamierzona zmiana stylu lub tożsamości pojawia się ponad zwykłą zmienność modelu bazowego.
To drugie pytanie jest najważniejsze przy pracy z treściami dla dorosłych. Model bazowy już teraz realizuje dojrzałe briefy bez filtra, więc bardziej dosadny wynik z adapterem może pochodzić od modelu bazowego. Tylko kontrola pokazuje, co skąd się bierze.
Najpierw wypróbuj w Playground
Otwórz Playground z-image-turbo-lora w widoku Form view i ustaw te same wartości we wszystkich trzech uruchomieniach:
- Wklej jeden prosty prompt portretowy w polu Prompt, ustaw Aspect ratio na 1:1, Output format na PNG i Seed na 42. Kompresja JPEG dodaje szum do porównania pikseli.
- W sekcji Style LoRAs użyj Remove item, aż lista będzie pusta, i uruchom dwa razy. To Twoje dwie kontrole.
- Wybierz Add item, wklej bezpośredni link do pliku
.safetensorsw polu LoRA file, zostaw Strength na 1 i uruchom raz. (Playground nazywa skalę LoRA „Strength”; pole API toscalei nie jest to opisany niżej regulatorstrengthw trybie obraz na obraz.) - Ułóż trzy wyniki obok siebie: czy zamierzona zmiana stylu lub tożsamości pojawia się ponad różnicę między dwiema kontrolami?
Adapter Realism może wprowadzić subtelną zmianę w portrecie, który i tak jest fotograficzny. Aby pierwsza kontrola była lepiej widoczna, wybierz zgodny z Turbo LoRA malarski lub od korekcji barwnej oraz słowo wyzwalające jego autora. Mała różnica przy Realism nie oznacza, że wczytywanie się nie powiodło.
Uruchom kontrolę trzech zadań przez API
Aby zmierzyć różnicę zamiast oceniać ją na oko, uruchom te same trzy zadania z Pythona. Zainstaluj spicyapi i pillow, ustaw SPICY_API_KEY i uruchom:
import os
import uuid
import urllib.request
from io import BytesIO
from PIL import Image, ImageChops, ImageStat
from spicyapi import SpicyClient, output_assets
client = SpicyClient()
MODEL = "alibaba/z-image-turbo-lora/text-to-image"
inputs = {"prompt": "Realism, studio portrait of a woman in a burgundy blazer, soft window light, grey backdrop",
"aspect_ratio": "1:1", "output_format": "png", "seed": 42,
"loras": [{"path": "https://huggingface.co/suayptalha/Z-Image-Turbo-Realism-LoRA/resolve/8dc179cb56844d4ddc6e4527c30e98347eeae971/pytorch_lora_weights.safetensors", "scale": 1}]}
images = []
for name, loras in [("base-1", []), ("base-2", []), ("lora", inputs["loras"])]:
body = {**inputs, "loras": loras}
quote = client.quote_task(model=MODEL, input_data=body)
if input(f"{name}: maximum ${quote['maxCharge']}. Create? [y/N] ") != "y":
raise SystemExit("Stopped")
task = client.create_task(model=MODEL, input_data=body, idempotency_key=str(uuid.uuid4()),
quote_id=quote["quoteId"], expected_cost=quote["estimatedCost"])
final = client.wait_for_terminal(task["taskId"])
url = output_assets(final)[0]["url"]
request = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
data = urllib.request.urlopen(request, timeout=120).read()
open(name + ".png", "wb").write(data)
images.append(Image.open(BytesIO(data)).convert("RGB"))
for label, other in [("control gap", images[1]), ("LoRA gap", images[2])]:
diff = ImageStat.Stat(ImageChops.difference(images[0], other)).mean
print(label, sum(diff) / 3 / 255 * 100)Obsługę zadań opisuje Python SDK. Użyj bezpośredniego pliku LoRA przypiętego do wersji oraz słowa wyzwalającego od autora; zmiana pliku między kontrolami niweczy porównanie. Ten sam seed nadal może dać inne piksele, dlatego porównaj dwie kontrole, zanim zinterpretujesz wynik adaptera.
Jak czytać wynik
| Kontrola kontra LoRA w porównaniu z kontrolą kontra kontrola | Co to oznacza | Co zrobić |
|---|---|---|
| Mniej więcej na poziomie szumu, a obrazy wyglądają podobnie | W tym prompcie brak widocznego efektu adaptera | Sprawdź bazę, na której go wytrenowano, słowo wyzwalające i typ pliku (niżej), a potem użyj skali zalecanej przez autora pliku; jeśli jej nie podano, porównaj 0,5, 1 i 1,5 |
| Wyraźnie powyżej różnicy między kontrolami (także gdy kontrole są identyczne), widoczny zamierzony wygląd, motyw nienaruszony | Dowód zamierzonego efektu adaptera; potwierdź na kolejnych seedach | Zostaw go; powtórz na dwóch lub trzech innych seedach |
| Daleko powyżej poziomu szumu, ale zmienił się motyw, twarz lub kadr | Duża zmiana, ale jeszcze nie użyteczny wynik | Porównaj niższe skale, na przykład 0,8 i 0,6, z tą samą kontrolą |
| Kontrola już odpowiada Twojemu briefowi | Adapter nie dodaje niczego, czego potrzebujesz | Pomiń go; LoRA to regulator stylu lub tożsamości, a nie wymóg |
Liczby służą do wstępnej selekcji; decydują Twoje oczy. Niewielkie przesunięcie kamery zmienia wiele pikseli, a zmieniona twarz niewiele, więc zanim zaufasz wartości procentowej, przyjrzyj się tożsamości, stylowi, kadrowi oraz każdemu kostiumowi lub rekwizytowi, o który nie prosiłeś. Wartości procentowe nie są progami dla innych plików ani rozmiarów. W scenach dla dorosłych odróżniaj też odmowę od ukończonego, ale złagodzonego obrazu: jest on rozliczany i może wyglądać na dopracowany, a mimo to nie spełniać briefu.
Dlaczego LoRA nic nie robi
Jeśli zadanie się zakończyło, ale nie widzisz zamierzonego efektu, przejdź po kolei przez te punkty:
- Niezadeklarowana zgodność. Wybieraj plik przeznaczony dla Turbo albo wytrenowany na Base, którego autor dokumentuje zgodność z Turbo. Adaptery wytrenowane na Base nie są automatycznym zamiennikiem. Stosuj ustawienia autora dla Turbo i uruchom kontrolę bez LoRA, zamiast zakładać, że większa skala usunie niezgodność.
- Zły typ adaptera. Standardowa LoRA to bezpieczny format. Zgłoszenie dotyczące ComfyUI opisuje adaptery LoKR dla Z-Image Turbo zapisywane jako „lora key not loaded” i ignorowane, podczas gdy standardowe LoRA działały (ComfyUI issue 10973); to zgłoszenie dotyczące lokalnego loadera ComfyUI. Użyj tutaj standardowego LoRA dla Turbo, zamiast zakładać, że endpoint obsługuje pliki LoKR.
- Brak słowa wyzwalającego. Pliki stylu i postaci reagują na swoje słowo wyzwalające. Zacznij od niego prompt.
- Zbyt niska skala lub subtelny plik. Sprawdź 0,5, 1 i 1,5, utrzymując resztę bez zmian.
- Problemy z linkiem. Adres URL strony lub plik prywatny kończy się błędem przy wysyłaniu albo później; użyj bezpośredniego, dostępnego pliku modelu.
Obraz na obraz ma dwa regulatory
Zadanie obraz na obraz dodaje image_url, resolution oraz osobny strength (od 0 do 1, domyślnie 0,8), który określa, jak daleko wynik może odejść od obrazu źródłowego: niższe wartości zachowują więcej wpływu źródła, a wartości bliskie 1 pozwalają na większą zmianę. Nie ma uniwersalnego ustawienia, które zachowuje twarz; wartości powyżej 1 są odrzucane. Utrzymuj stałe strength razem z seed, gdy testujesz scale, bo inaczej nie będziesz wiedzieć, który regulator zmienił obraz.
Którą drogę wybrać przy treściach dla dorosłych
W naszych testach z września 2026 bez LoRA tryb tekst na obraz zrealizował wszystkie 18 żądań, od sugestywnych po wyraźnie dosadne scenariusze. Obraz na obraz zrealizował 15 z 18: trzy jego edycje scen intymnych pominęły żądaną czynność, choć najbardziej skrajne próby zostały ukończone. Wynik zależy od zadania i sceny, a nie po prostu od etykiety poziomu. Zacznij więc od trybu tekst na obraz, gdy możesz opisać scenę od zera, a obraz na obraz wybierz, gdy istniejący portret lub kompozycja musi przetrwać. LoRA dodaje wtedy wygląd lub postać na jednym i drugim; recenzja modelu zawiera wyniki dla poszczególnych klas.

Portret w szmaragdowej sukni z trzema kolorowymi odbiciami w lustrze; oceniając wkład adaptera, porównaj z odpowiadającą mu kontrolą bez LoRA.
Zapisz jednowierszowy rekord
Przechowuj obok każdego obrazu prompt, seed, proporcje, listę {path, scale}, strength (jeśli użyto) i adres URL wyniku. Przypnij każdy path do wersji pliku, która nie może się zmienić: adres URL społeczności może nadal działać, gdy autor podmienia wagi, a przypięty commit wskazuje wersję adaptera użytą w każdym uruchomieniu.

Redakcyjna ilustracja etapu weryfikacji: ta sama osoba w trzech wariantach ułatwia ocenę zmiany stylu.
FAQ
Czy ten sam seed daje obraz identyczny co do piksela?
Niekoniecznie. Powtórz zadanie bez LoRA i zmierz je względem pierwszego, zanim zaufasz jakiejkolwiek różnicy przypisywanej LoRA.
Czy mogę testować trzy LoRA naraz?
Do jednego żądania możesz wczytać do trzech, ale najpierw przetestuj jeden. Przy kilku plikach nie da się stwierdzić, który spowodował dryf. Dodaj drugi ze skalą około 0,5 i zwiększaj ją, aż pojawi się jego wygląd.
Czy podłączenie LoRA odblokowuje mocniejsze treści?
Samo w sobie nie: przypisuj adapterowi tylko to, co pojawia się względem kontroli.
Czy Z-Image Turbo obsługuje LoRA?
Tak. Każde żądanie przyjmuje do trzech LoRA, każde jako bezpośredni link do pliku .safetensors udokumentowanego jako zgodny z Z-Image Turbo, ze skalą scale od 0 do 4 (domyślnie 1). Endpoint wczytuje wagi, ale ich nie trenuje. Wagi trenuj osobno; przewodnik po hostowanym API LoRA wyjaśnia, jak dostarczyć gotowy plik.
Ile to kosztuje?
Wczytanie LoRA nie dolicza osobnej opłaty za adapter. Aktualna wycena potwierdza łączną kwotę przed każdym zadaniem.
Jakiej skali użyć?
Użyj zakresu zalecanego przez autora. Jeśli go nie podano, domyślna wartość platformy to 1; porównaj 0,5, 1 i 1,5 przy tym samym prompcie i seed. Jeśli motyw dryfuje, obniż skalę. Zwiększanie jej nie jest uniwersalnym rozwiązaniem dla pliku wytrenowanego na innej bazie.
Jeśli masz już plik dla Z-Image Turbo, uruchom kontrolę trzech zadań w trybie tekst na obraz, zanim zacznie od niego zależeć cała partia.
Pozwól, by wywołaniem zajął się Agent
Skorzystaj z Agenta, gdy chcesz, by przygotował dane wejściowe i zwrócił wynik, a Ty zatwierdzasz cenę i decyzje twórcze.
- CLI: zapisz ten sam obiekt wejściowy jako
input.jsoni użyjnpx @spicyapi/cli tasks create --model alibaba/z-image-turbo-lora/text-to-image --input-file input.json --wait. CLI potwierdza cenę; zachowaj zwrócony identyfikator zadania na wypadek odzyskiwania. - MCP: poproś asystenta o użycie
spicyapi_task_createdlaalibaba/z-image-turbo-lora/text-to-image, a potemspicyapi_task_wait. Serwer MCP prosi o potwierdzenie ceny przed utworzeniem zadania. - Skill: zainstaluj go poleceniem
npx skills add spicyapi-ai/spicy-skill, a następnie poproś: "Use the spicyapi skill to run this three-job check and stop for my approval." Skill korzysta ze skonfigurowanego połączenia CLI lub MCP.





