FLUX Kontext API alternatifi: GPT Image 2 ile görsel düzenleme
Maskesiz talimatla düzenleme: istek kodu, 28 Ekim 2026'da çalıştırdığımız üç adımlık zincir ve her adımın neleri koruduğu.
Bu sayfada
- Talimatla düzenleme nedir
- İstek
- Üç düzenlemeden oluşan zincir
- Orijinalden tek düzenleme
- Neler korundu, neler korunmadı
- İşe yarayan talimatlar
- Hangisini seçmeli
- SSS
- FLUX Kontext API'si ne yapar?
- FLUX Kontext hâlâ güncel mi?
- Sadece metinle API üzerinden fotoğraf düzenlenebilir mi?
- Düzenlemeler zincirlenebilir mi?
- Sonuç bağlantıları ne kadar geçerli?
FLUX Kontext API'si, istek başına bir istem ve bir görselle fotoğrafı düzenler. BFL'nin sayfası FLUX.1 Kontext'i önceki nesil bir model olarak adlandırıyor ve yeni projeler için FLUX.2'yi öneriyor (28 Ekim 2026'da kontrol edildi). GPT-Image 2 aynı iki girdiyi alır. 28 Ekim 2026'da zincirleme yapılan üç düzenleme kafe masasını, fincanı, bitkiyi ve pencereyi, bunlarla birlikte önceki her değişikliği korudu.
Talimatla düzenleme nedir
Bir fotoğraf ve "kırmızı bisikleti mat siyaha çevir" gibi bir cümle gönderirsiniz. Model, söylenen değişikliğin yapıldığı ve karenin geri kalanının bozulmadığı yeni bir fotoğraf döndürür. BFL, Kontext'i karmaşık iş akışları ve ince ayar gerektirmeden basit metin istemleriyle görsel düzenleme olarak tanımlıyor (docs.bfl.ai/kontext/kontext_image_editing, 28 Ekim 2026'da kontrol edildi).
Kodu kuran üç BFL sayısı var: 20 MB veya 20 megapiksele kadar girdi, yaklaşık 1 MP çıktı ve 10 dakika geçerli imzalı sonuç bağlantıları. Sonucu hemen indirin.
Talimatın iki parçası var: değişiklik ve yerinde kalacakların listesi.
OmniaKey üzerindeki GPT-Image 2, düzenleme görevini aynı iki bileşenle alıyor; model sayfası metinden görsele ve görsel düzenlemeyi low, medium ve high kalite seçenekleriyle listeliyor (omniakey.com/gpt-image-2, 28 Ekim 2026'da kontrol edildi). Hiçbir FLUX modelini çalıştırmadık, yani aşağıda yalnızca kendi dört düzenlememiz ve kod var.
İstek
Bir düzenleme, https://api.omniakey.com/v1/media/tasks adresine tek bir POST'tur: model olarak gpt-image-2, type olarak image, operation olarak edit, cümle input.prompt içinde ve kaynak fotoğraf input.image içinde mime türüyle birlikte Base64 olarak gönderilir (docs.omniakey.com/en/media/image, 2026-10-28'de kontrol edildi). Çağrı, görev kimliğiyle birlikte HTTP 202 döner. Durum queued veya processing yazdığı sürece GET /v1/media/tasks/{task_id} adresini yoklayın, sonra biten görevden assets[0].url değerini alın.
İki ayrıntı bize bir tekrar denemeye mal oldu. Python'ın varsayılan User-Agent değeriyle atılan POST, kendi değerimizi ayarlayana kadar HTTP 403 döndü (28 Ekim 2026) ve gövdedeki Base64, 1 MiB'lık istek sınırına sayılıyor, bu yüzden fotoğrafı kodlamadan önce küçültün.
Sonuç, yaklaşık bir saat sonra geçersiz olan imzalı bir bağlantının arkasındaki opak bir PNG; dosya 24 saat saklanıyor. İndirin ve istediğiniz boyuta güvenmek yerine gerçek genişliği ve yüksekliği okuyun.
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"] # signed link: valid for about an hour, so download now
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(
"cafe-base.jpg",
"Change the red bicycle to a matte black bicycle with a brown wicker basket on the front. Keep everything else exactly the same: the wooden table, the coffee cup, the plant, the window frame and the bright daylight. Photorealistic, no text, no logos.",
"cafe-step1.png",
size="1536x1024",
)
print("task", task)
Bizim çalıştırmalarımızda size 1536x1024 ve quality medium kullanıldı. Belgeler, GPT Image için n değerinin 1 olması gerektiğini söylüyor; fonksiyon bu alanı hiç göndermiyor. Dosyanın sonundaki örnek çağrı, zincirin 1. adımıdır.
Üç düzenlemeden oluşan zincir
Her adım önceki sonucu girdi olarak aldığı için zincir üç görev ve üç indirme demek. Temel fotoğraf, pencerenin yanındaki bir kafe masası: tabakta beyaz bir kahve fincanı, kaldırımda kırmızı bir bisiklet, pencere kenarında saksıda bir bitki, 1536x1024 ve medium kalite.
-
- adım: "Change the red bicycle to a matte black bicycle with a brown wicker basket on the front. Keep everything else exactly the same: the wooden table, the coffee cup, the plant, the window frame and the bright daylight. Photorealistic, no text, no logos." Sonuç: önünde hasır sepet olan mat siyah bir bisiklet; masa, fincan, bitki ve pencere değişmedi.
-
- adım, 1. adımdan: "Make it evening outside: the sky is dark blue and the street lamps are on. The cafe interior lights are warm yellow. Keep the table, the cup, the plant, the black bicycle and the window frame exactly the same. Photorealistic, no text, no logos." Sonuç: akşam gökyüzü, yanan sokak lambaları, içeride sıcak sarı ışık ve sepetiyle birlikte duran siyah bisiklet.
-
- adım, 2. adımdan: "Replace the coffee in the white cup with a clear glass of iced tea with a lemon slice on the rim. Keep everything else exactly the same. Photorealistic, no text, no logos." Sonuç: kahvenin yerinde kenarında limon dilimi olan buzlu çay; akşam sahnesi korundu.

Dört karenin hepsi gpt-image-2 ile üretilmiş sentetik sahneler. Generated with GPT-Image 2 via the OmniaKey API on October 28, 2026, size 1536x1024, quality medium.
Orijinalden tek düzenleme
Her düzenleme zincir gerektirmez. Bu örnek temel fotoğraftan başlıyor ve pencere kenarındaki tek bir nesneyi değiştiriyor: "Remove the potted plant from the windowsill and place a stack of three old hardcover books there. Keep everything else exactly the same: the table, the cup, the red bicycle and the daylight. Photorealistic, no text, no logos."
Pencere kenarında üç eski ciltli kitap durdu, bitki kayboldu ve kırmızı bisiklet kırmızı kaldı. Tek bir cümle iki değişiklik yaptı ve ikisi de karede göründü.

Neler korundu, neler korunmadı
Masa, fincan, bitki ve pencere çerçevesi üç adımın hepsinden geçti, siyah bisiklet ve sepeti akşam ışığını atlattı ve her önceki düzenleme bir sonraki karede yerinde durdu. Işık yalnızca bir kez, cümlenin istediği 2. adımda değişti.
Limon dilimi cümlenin istediği gibi bardağın kenarında durdu ve buzlu çay tabakta kaldı. Her talimat bir kez çalıştı, yani her kare tek bir örnek.
İşe yarayan talimatlar
Dört talimat, ortak bir desenle dört kullanılabilir düzenleme verdi.
- Cümle başına tek değişiklik, ardından korunacaklar listesi. 1. adım bisikleti değiştirdi ve masa, fincan, bitki ile pencereyi değişmez olarak saydı.
- Korunacaklar listesini her turda yeniden yazın, önceki değişiklik de içinde olsun: 2. adım "the black bicycle" diyor, 3. adım akşamı koruyor.
- Yeni şeyin nereye geleceğini eski şeyle aynı cümlede söyleyin: "place a stack of three old hardcover books there".
- Somut malzeme ve renk kullanın: "matte black", "brown wicker basket", "warm yellow", "clear glass".
- Sonu "Photorealistic, no text, no logos" ile kapatın. Zincirimizdeki her talimat böyle bitiyordu.
Cümle sırası ve düzenleme ifadeleri için GPT Image 2 istem rehberimiz yapıyı adım adım anlatıyor. Sanal deneme rehberi kıyafet değişimini, nesne kaldırma rehberi ise silme işlemlerini kapsıyor.
Hangisini seçmeli
| FLUX.1 Kontext | GPT-Image 2 düzenleme | |
|---|---|---|
| İstek başına girdi | Bir istem, bir görsel | Bir istem, bir görsel |
| Kaynak sınırı | 20 MB veya 20 megapiksel | 1 MiB istek, Base64 dahil |
| Sonuç boyutu | Yaklaşık 1 MP | İstediğiniz boyut, PNG olarak |
| Sonuç bağlantısı | 10 dakika | Yaklaşık bir saat |
| Model durumu | BFL'ye göre önceki nesil | OmniaKey üzerinde mevcut |
Üretimde zaten bir FLUX hattı çalışıyorsa ve şimdilik o çağrı biçimini korumak istiyorsanız Kontext'i seçin. Boyutu kendiniz belirlemek ve bağlantıyı indirmek için bir saatiniz olsun istiyorsanız GPT-Image 2'yi seçin. BFL yeni işleri FLUX.2'ye yönlendiriyor, yani yeni bir proje yeniden bakmak için iyi bir an.
Maliyette OpenAI'ın fiyat sayfası (2026-10-28'de kontrol edildi) gpt-image-2'yi milyon token üzerinden faturalandırıyor: görsel girişi $8.00, görsel çıkışı $30.00, önbelleğe alınmış görsel girişi $2.00, toplu işlem ise standart tarifenin yarısı. Tek görsel için satır yok; görsel üretim rehberinde tek görsel için bir hesaplayıcı var.
SSS
FLUX Kontext API'si ne yapar?
Bir fotoğrafı metin talimatıyla düzenler; istek başına bir istem ve bir girdi görseli alır (BFL, 2026-10-28'de kontrol edildi). BFL'nin sayfası "edits images using simple text prompts" diyor.
FLUX Kontext hâlâ güncel mi?
BFL, FLUX.1 Kontext'i önceki nesil bir model olarak adlandırıyor ve yeni projeler için FLUX.2'yi öneriyor (2026-10-28'de kontrol edildi).
Sadece metinle API üzerinden fotoğraf düzenlenebilir mi?
Evet. GPT-Image 2 düzenleme uç noktasına bir fotoğraf ve bir talimat gönderin, yeni bir fotoğraf geri gelir. 28 Ekim 2026'da dört düzenlemeyi bu şekilde yaptık.
Düzenlemeler zincirlenebilir mi?
Evet, adım başına bir görevle: her sonucu bir sonraki kaynak fotoğraf olarak verin. Üç adımlık zincirimiz önceki değişiklikleri hem akşam ışığında hem de içecek değişiminde korudu.
Sonuç bağlantıları ne kadar geçerli?
OmniaKey üzerinde yaklaşık bir saat; dosya 24 saat saklanıyor (docs.omniakey.com, 2026-10-28'de kontrol edildi). Görev başarılı olur olmaz PNG'yi indirin, sonra gerçek boyutlarını okuyun.
OmniaKey, GPT-Image 2 düzenlemelerini yukarıdaki görev akışıyla sunuyor; güncel fiyatlar fiyat sayfasında.
Bu makaledeki modeller
İlgili makaleler
GPT Image 2 prompt rehberi: yapı, örnekler ve gerçek görseller
Sekiz prompt ve dokuz gerçek görsel: GPT Image 2 neyi harfiyen tuttu, neyi ekledi ve nasıl düzeltilir.
Sanal deneme API'si: GPT Image 2 ile kıyafet değiştirme
Tek bir fotoğraf ve tek bir istem kıyafeti değiştiriyor. İstek kodu, 28 Ekim 2026'da çalıştırdığımız üç değişim ve düzenlemenin nerede kaydığı burada.
Nesne kaldırma API'si: GPT Image 2 ile fotoğraftan nesneyi tek cümleyle silin
Bu üç kaldırma için nesne başına tek komut yetti. İstek kodu, tam boy sonuçlar ve düzenlemenin henüz güvenilir olmadığı yerler aşağıda.
