API virtual try-on: mengganti pakaian model dengan GPT Image 2
Satu foto dan satu prompt bisa mengganti pakaian. Berikut kode permintaannya, tiga pergantian yang kami jalankan pada 28 Oktober 2026, dan di mana hasil editnya meleset.
Di halaman ini
- Apa yang bisa dan tidak bisa dilakukan edit untuk try-on
- Kirim foto dan prompt pakaian
- Tiga pergantian pakaian yang kami jalankan
- Foto pakaian sebagai referensi kedua
- Di mana hasilnya meleset
- Kapan API try-on khusus lebih cocok
- Template prompt untuk pergantian pakaian
- Pertanyaan umum
- Apakah ada endpoint try-on khusus di API GPT Image 2?
- Bisakah saya mengirim foto pakaian?
- Apakah wajahnya tetap sama?
- Berapa lama tautan hasil berlaku?
- Ukuran apa yang sebaiknya diminta?
Bisa, dengan satu prompt teks. Endpoint edit GPT-Image 2 mengganti pakaian pada satu foto dan mempertahankan pose, wajah, serta latar pada tiga percobaan kami tanggal 28 Oktober 2026. Tidak ada kolom khusus untuk pakaian, tetapi foto pakaian kedua mengubah panjang gaun pada percobaan kami. Periksa setiap hasil dengan mata.
Permintaannya adalah pengeditan gambar di API media OmniaKey: satu foto sumber, satu prompt, dan gambar referensi opsional. Kami memeriksa fungsi di bawah pada 28 Oktober 2026 dengan prompt berbeda (jas hujan kuning) pada JPEG 1024 piksel dari model dasar, dan hasilnya PNG 1024x1536.
Apa yang bisa dan tidak bisa dilakukan edit untuk try-on
Pengeditan gambar dimulai dari foto sumber dan prompt. Operasinya edit, sumber dikirim inline sebagai Base64, dan prompt menyebut pakaian baru; dokumentasi API gambar OmniaKey (diperiksa 28 Oktober 2026) juga mengizinkan beberapa gambar referensi dalam array images. Hasilnya bingkai baru, jadi pakaian berubah sementara orangnya tetap di tempat: pada percobaan kami wajah, pose, rambut, dan latar studio tidak berubah.
Ada dua batas yang penting untuk try-on: tidak ada kolom pakaian terpisah, jadi model menggambar pakaian dari deskripsi Anda atau foto kedua, dan bingkai baru bisa menyentuh detail yang tidak Anda sebut. Fitur try-on sebaiknya menampilkan hasil untuk ditinjau dan membiarkan pembeli menilai sendiri kemiripannya. Operasi yang sama juga menangani menghapus objek dari sebuah scene; untuk pengeditan yang dipandu instruksi, lihat panduan alternatif FLUX Kontext.
Kirim foto dan prompt pakaian
Kirim POST ke https://api.omniakey.com/v1/media/tasks dengan kunci bearer, body JSON, dan header Idempotency-Key; dokumentasi API gambar OmniaKey (diperiksa 28 Oktober 2026) menyebut pembuatan mengembalikan HTTP 202 dan id tugas. Polling URL tugas selama statusnya queued atau processing; succeeded berarti asetnya siap, dan tugas failed membawa error.code serta error.message dan tidak ditagih.
Isi kolom tugas seperti ini:
| Kolom | Nilai |
|---|---|
model | gpt-image-2 |
type | image |
operation | edit |
input.prompt | instruksi pakaian |
input.image | foto sumber sebagai objek data dan mime_type |
input.images | foto referensi tambahan |
parameters.size | WIDTHxHEIGHT |
parameters.quality | low, medium, high, atau auto |
parameters.n | 1 |
Jaga permintaan di bawah 1 MiB, karena Base64 inline ikut dihitung dalam batas itu. Jumlah sampel harus 1, dan API selalu mengembalikan PNG opaque, jadi baca dimensi sebenarnya dari berkas yang diunduh.
Berikut fungsinya:
import base64
import json
import os
import time
import urllib.request
import uuid
API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]
def request(method, url, body=None, extra_headers=None):
headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
data = None
if body is not None:
headers["Content-Type"] = "application/json"
data = json.dumps(body).encode()
headers.update(extra_headers or {})
req = urllib.request.Request(url, data=data, headers=headers, method=method)
with urllib.request.urlopen(req, timeout=120) as resp:
return json.load(resp)
def edit_image(source_path, prompt, out_path, size="1024x1536", quality="medium"):
with open(source_path, "rb") as f:
image = base64.b64encode(f.read()).decode()
body = {
"model": "gpt-image-2",
"type": "image",
"operation": "edit",
"input": {"prompt": prompt, "image": {"data": image, "mime_type": "image/jpeg"}},
"parameters": {"size": size, "quality": quality},
}
task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
for _ in range(150):
time.sleep(4)
state = request("GET", f"{API}/{task}")
if state["status"] not in ("queued", "processing"):
break
if state["status"] != "succeeded":
raise RuntimeError(state.get("error") or state["status"])
asset_url = state["assets"][0]["url"] # tautan bertanda tangan: berlaku sekitar satu jam, unduh sekarang
req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
with urllib.request.urlopen(req, timeout=120) as resp, open(out_path, "wb") as f:
f.write(resp.read())
return task
if __name__ == "__main__":
task = edit_image(
"vto-base.jpg",
"Change the outfit: she now wears a red satin slip dress with thin straps that falls to mid-calf. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.",
"vto-slip.png",
size="1024x1536",
)
print("task", task)
Tautan aset bertanda tangan berlaku sekitar satu jam dan berkasnya disimpan 24 jam, menurut dokumentasi yang sama, jadi unduh segera setelah tugas berhasil. Pemeriksaan kami pada 28 Oktober 2026 memakai prompt jas hujan kuning pada JPEG 1024 piksel dari model dasar dan mengembalikan PNG 1024x1536. Skrip mengirim header User-Agent: bawaan Python ditolak dengan HTTP 403 pada percobaan kami, dan setelah header ditambahkan berhasil.
Tiga pergantian pakaian yang kami jalankan
Ketiga pergantian berangkat dari foto sintetis yang sama: perempuan dengan kaus putih leher bulat dan jeans biru tua di latar studio abu-abu muda polos, dibuat pada 1024x1536 dan kualitas medium dalam percobaan kami tanggal 28 Oktober 2026.
Pergantian 1 meminta gaun slip satin merah dengan tali tipis yang panjangnya sampai pertengahan betis. Gaunnya muncul, dan pose, wajah, rambut, serta latar tetap sama. Sepatu sneakers putih berubah menjadi heels bertali putih tanpa diminta.
Pergantian 2 meminta blazer wol hijau tua di atas camisole sutra krem, dengan celana lurus hitam. Ketiga potong muncul, dan sneakers putih tetap.
Pergantian 3 meminta atasan lengan panjang bergaris horizontal navy dan putih dengan hati merah bordir kecil di dada kiri. Garis dan hatinya mendarat di dada kiri; jeans biru tua dan sneakers putih tetap.

Semua orang dan scene di sini sintetis, dan setiap prompt kami jalankan sekali, jadi setiap gambar adalah satu sampel.
Generated with GPT-Image 2 via the OmniaKey API on October 28, 2026, size 1024x1536, quality medium.
Foto pakaian sebagai referensi kedua
Untuk hasil yang lebih dekat, kirim pakaian sebagai gambar kedua. Kami menaruh foto orang di posisi pertama, gaun slip satin merah yang ditata rata di posisi kedua, dan memakai input.images dengan prompt ini: "Dress the woman in the first image in the red satin slip dress shown in the second image. Keep her pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos."
Gaunnya sampai ke lantai, mendekati panjang pada foto yang ditata rata. Versi hanya teks dari gaun yang sama berhenti di pertengahan betis. Pada satu sampel kami, foto pakaian membawa panjang yang tidak ditentukan kata-kata.

Di mana hasilnya meleset
Melencengnya muncul di bagian yang tidak kami sebut di prompt: pergantian gaun slip mengubah sepatu padahal prompt hanya menyebut gaun. Periksa wajah, tangan, ujung gaun, sepatu, dan motif apa pun pada ukuran penuh sebelum menunjukkan hasil ke pembeli. Kami tidak menguji pakaian dengan logo cetak, motif kain persis dari foto produk, atau lebih dari dua gambar.
Kapan API try-on khusus lebih cocok
API try-on khusus menerima orang dan pakaian sebagai dua input terpisah. Halaman Vertex AI Google "Generate Virtual Try-On Images" (terakhir diperbarui 26 Oktober 2026; diperiksa 28 Oktober 2026) menyebut: "You provide an image of a person and an image of a clothing product." Halaman yang sama mencantumkan personImage dan productImages sebagai kolom Base64, sampleCount dari 1 sampai 4, dan ID model virtual-try-on-001. Ada juga pemberitahuan bahwa dokumentasi Vertex AI tidak lagi diperbarui.
Pilih endpoint seperti itu bila foto pakaian menjadi sumber kebenaran dan Anda butuh beberapa sampel per permintaan. Pilih edit GPT-Image 2 bila satu alur untuk pergantian pakaian dan pengeditan lain lebih penting daripada jumlah sampel per panggilan.
Halaman harga OpenAI (diperiksa 28 Oktober 2026) menyebut gpt-image-2 ditagih per token: halaman itu mencantumkan tarif token dan tidak memuat tabel per gambar, serta mengarah ke kalkulator di panduan pembuatan gambar. Tarif OmniaKey saat ini ada di halaman harga.
Template prompt untuk pergantian pakaian
Pakai bentuk yang berhasil dalam percobaan kami: sebut pakaian lebih dulu, lalu kunci orang dan setnya.
Change the outfit: she now wears [garment, colour, fabric, length]. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.
- Pakaian: satu kalimat dengan warna, bahan, dan panjang. "A red satin slip dress with thin straps that falls to mid-calf" memberi perubahan yang jelas.
- Kunci: pose, wajah, rambut, tubuh, latar, pencahayaan. Sebutkan semuanya secara eksplisit di prompt.
- Penutup: "Photorealistic, no text, no logos." Prompt kami memakai penutup itu.
- Sepatu: sebutkan bila harus tetap, misalnya "keep the white sneakers". Pada pergantian gaun slip, sepatu berubah karena tidak disebut.
Tambahkan gambar kedua bila panjang lebih penting daripada kata-kata: orang di posisi pertama, pakaian di posisi kedua, dan rujuk "the first image" serta "the second image" di prompt, seperti yang kami lakukan. Untuk urutan prompt secara umum, lihat panduan prompt GPT Image 2.
Pertanyaan umum
Apakah ada endpoint try-on khusus di API GPT Image 2?
Tidak. Halaman model OmniaKey (diperiksa 28 Oktober 2026) mencantumkan teks ke gambar dan edit gambar. Dalam percobaan kami, try-on adalah edit dengan prompt teks dan gambar kedua yang opsional.
Bisakah saya mengirim foto pakaian?
Bisa, sebagai gambar referensi kedua di input.images. Pada percobaan kami tanggal 28 Oktober 2026, panjang gaun menyesuaikan foto yang ditata rata.
Apakah wajahnya tetap sama?
Pada tiga pergantian dan percobaan dua referensi, iya, secara visual. Periksa setiap hasil pada ukuran penuh sebelum ditunjukkan.
Berapa lama tautan hasil berlaku?
Sekitar satu jam, menurut dokumentasi API gambar OmniaKey yang diperiksa 28 Oktober 2026, dan berkasnya disimpan 24 jam. Unduh segera setelah tugas berhasil.
Ukuran apa yang sebaiknya diminta?
Kirim size sebagai WIDTHxHEIGHT, misalnya 1024x1536, lalu baca dimensi sebenarnya dari PNG yang diunduh. Percobaan kami memakai 1024x1536 pada kualitas medium.
Mulai dari satu foto dan satu prompt pakaian. Halaman GPT-Image 2 membahas modelnya; tarif terbaru terpisah.
Model di artikel ini
Artikel terkait
GPT Image 2: panduan prompt, struktur, contoh, dan gambar asli
Delapan prompt dan sembilan gambar nyata: mana yang tepat huruf demi huruf, apa yang ditambahkan, dan cara memperbaikinya.
Alternatif API FLUX Kontext: Edit Gambar dengan GPT Image 2
Edit lewat instruksi tanpa masker: kode permintaannya, rantai tiga edit yang kami jalankan pada 28 Oktober 2026, dan apa yang dipertahankan setiap langkah.
API hapus objek: singkirkan objek dari foto dengan GPT Image 2
Satu perintah per objek cukup untuk ketiga penghapusan ini. Berikut kode permintaannya, hasil ukuran penuh, dan bagian yang editnya belum bisa dipercaya.
Artikel terbaru
- Clapping Cat Meme AI: Buat Hewan Peliharaanmu Bertepuk Tangan dengan Image-to-Video
- Panduan prompt Kling 3.0: struktur, contoh, dan klip asli
- Panduan prompt MiniMax H3: struktur, contoh, dan klip asli
- Claude Haiku 5.5 vs Sonnet 5.5: kode, biaya, dan kecepatan
- Panduan prompt Wan 3.0: struktur, contoh, dan klip nyata
