Entegrasyon rehberleri · 2026-11-05
API ile animasyonlu GIF üretimi ve markup ile görsel düzenleme
GPT Image 2.6 ile API üzerinden animasyonlu GIF üretin ve saydam PNG ile görsel düzenleyin: kare sınırları, frame_count, markup kuralları ve istem yazımı.
Kısa yanıt: GIF için output_format gif, düzenleme için images ve markup alanları
LLMTR, farklı sağlayıcıların yapay zekâ modellerine tek bir OpenAI uyumlu API ile erişim veren bir gateway'dir. Animasyonlu GIF üretimi ve markup ile düzenleme LLMTR'de openai/gpt-image-2.6-flare ve openai/gpt-image-2.6-sunburst modelleriyle yapılır; llmtr.com hesabınızda oluşturduğunuz API anahtarı ve yüklü bir bakiye yeterlidir. GIF isteği https://llmtr.com/v1/images/generations, düzenleme isteği https://llmtr.com/v1/images/edits adresine JSON gövdesiyle gider. Fiyat iki modelde de aynıdır: 1 milyon token başına metin girdi 5 $, görsel girdi 8 $, görsel çıktı 30 $.
GIF isteğinde frame_count kare sayısını, frame_duration_ms kare başına süreyi, size her karenin boyutunu belirler. Düzenlemede markup alanı, üzerine daire ya da çizim yaptığınız saydam bir PNG taşır: işaret yeri gösterir, değişikliği istem anlatır. İki istekte de sonuç yanıtın data[0].b64_json alanında base64 olarak gelir.
API ile animasyonlu GIF nasıl üretilir?
Üç adım yeterlidir: llmtr.com'da bir API anahtarı oluşturup Panel > Faturalandırma'dan bakiye yükleyin, anahtarı LLMTR_API_KEY ortam değişkenine koyun ve https://llmtr.com/v1/images/generations adresine output_format alanı gif olan bir JSON gövdesi gönderin. Yanıttaki data[0].b64_json değerini base64'ten çözüp .gif uzantısıyla kaydedin.
Aşağıdaki örnek önce 512x512 boyutunda dokuz karelik bir GIF üretir; kare başına 200 milisaniyeyle GIF'in bir turu 1,8 saniye sürer. Sonra photo.png dosyasını markup.png ile düzenler. Düzenleme ucu JSON gövdesi aldığı için örnek OpenAI SDK'sı yerine requests kütüphanesini kullanır. quality low deneme içindir; istemi beğenince daha yüksek bir değerle yeniden gönderin, sonuç yeni bir görseldir. Karmaşık istemler iki dakikaya kadar sürebildiği için zaman aşımı 300 saniyedir.
https://llmtr.com/v1/images/generations adresinden animasyonlu GIF üreten ve https://llmtr.com/v1/images/edits adresinde saydam PNG ile görsel düzenleyen Python örneği.
import base64
import os
import requests
GENERATIONS = "https://llmtr.com/v1/images/generations"
EDITS = "https://llmtr.com/v1/images/edits"
MODEL = "openai/gpt-image-2.6-flare"
def png_data_url(path):
with open(path, "rb") as f:
return "data:image/png;base64," + base64.b64encode(f.read()).decode("ascii")
def call(url, body, out_path):
response = requests.post(
url,
headers={"Authorization": "Bearer " + os.environ["LLMTR_API_KEY"]},
json=body,
timeout=300,
)
response.raise_for_status()
data = response.json()
with open(out_path, "wb") as f:
f.write(base64.b64decode(data["data"][0]["b64_json"]))
print(out_path, data["data"][0]["mime_type"], data["usage"])
# 1. An animated GIF: nine frames of 512x512, 200 milliseconds each
GIF = {
"model": MODEL,
"prompt": "A small grey ball bouncing on a plain floor, seamless loop",
"output_format": "gif",
"frame_count": 9,
"frame_duration_ms": 200,
"size": "512x512",
"quality": "low",
}
call(GENERATIONS, GIF, "ball.gif")
# 2. An edit: markup.png is a transparent PNG, the size of photo.png, with a circle drawn on it
EDIT = {
"model": MODEL,
"prompt": "Recolor the shirt inside the circle to white, leave the rest of the photo alone, remove the circle from the result",
"images": [{"image_url": png_data_url("photo.png")}],
"markup": {"image_url": png_data_url("markup.png")},
"quality": "low",
"complexity": "low",
}
call(EDITS, EDIT, "edited.png")
GIF kare sınırları ve alanları
Tablo, 5 Kasım 2026 itibarıyla LLMTR dokümantasyonundaki GIF alanlarını gösterir. frame_count ve frame_duration_ms yalnızca üretim isteğinde geçerlidir; düzenleme ucu GIF çıktısı vermez.
Kare sayısı, kare boyutu ve n birlikte toplam piksel sınırına sığmalıdır; sığmazsa istek reddedilir ve frame_count, kare boyutu ya da n değerini düşürmeniz gerekir. GIF'te transparent arka plan ve output_compression kullanılamaz. İstemde konuyu, hareketi ve arka planı yazın; kesintisiz bir döngü istiyorsanız bunu da söyleyin. Son kare ile ilk karenin birbirine uyacağını varsaymayın, sonucu izleyerek kontrol edin.
| Alan | Değer | Gönderilmezse |
|---|---|---|
| output_format | gif | png |
| frame_count | 2 ile 16 arası | 9 |
| frame_duration_ms | kare başına 20 ile 2000 arası | 200 |
| size | her karenin boyutu; kenarlar 16'nın katı | sınıra sığan bir kare boyutu seçilir |
| n | 1 ile 6 arası; kareler ve boyutla birlikte toplam piksel sınırına sığmalı | 1 |
Saydam PNG ile markup düzenleme nasıl yapılır?
Düzenleme isteği https://llmtr.com/v1/images/edits adresine JSON gövdesiyle gider. Özgün görseli images dizisinin başına koyun, ayrı bir saydam PNG hazırlayıp değişecek yerin üzerine daire ya da çizim yapın ve bu dosyayı markup alanında gönderin. Katmanı görselle birleştirmeyin.
- images: en fazla 16 görsel. Her öğe bir https adresi, base64 data URL ya da {"image_url": "..."} nesnesi olabilir; PNG, JPEG ve WebP kabul edilir.
- markup: {"image_url": "..."} biçiminde, saydam pikseller içeren bir PNG. İlk görselle aynı genişlik ve yükseklikte olmalıdır.
- İşaret ilk görsele uygulanır; diğer görseller referans sayılır.
- markup ile mask aynı istekte kullanılamaz. /v1/files üzerinden alınan bir file_id bu modellerde kullanılamaz.
- OpenAI SDK'sının images.edit yöntemi çok parçalı form gönderir ve bu uç nokta onu kabul etmez; gövdeyi JSON olarak gönderin.
- İstek gövdesi toplamda 24 MB ile sınırlıdır; büyük görsellerde https adresi kullanın.
Düzenleme istemi nasıl yazılır?
İşaret değişecek yeri gösterir, değişikliğin kendisini istem anlatır. İstemde üç şeyi yazın: ne değişecek, ne aynı kalacak ve işaretin sonuçtan kaldırılması. Örnek: Daire içindeki gömleği beyaza boya, fotoğrafın geri kalanına dokunma, daireyi sonuçtan kaldır.
Bu kalıbı kendi verilerinizle deneyin; istemde yazdıklarınızın sonuca yansıyacağını varsaymayın. Görseli kullanmadan önce sonuca bir kişi baksın: işaret kalmış mı, işaretsiz alanlar değişmiş mi.
- Değişikliği somut yazın: hedef rengi, malzemeyi ya da nesneyi adıyla söyleyin.
- Korunacak ayrıntıları sayın: nesnenin şekli, arka plan, görseldeki yazı.
- Bir arka planı değiştirmek gibi odaklı düzenlemelerde complexity low ile başlayın; yüksek değerler süreyi uzatabilir ve istemediğiniz değişiklikler getirebilir.
- Karakter, ürün ya da marka öğesinin tutarlı kalmasını istediğiniz düzenlemelerde Sunburst'ü medium ya da daha yüksek bir quality ile deneyin.
GIF ve düzenleme nasıl faturalanır?
İkisi de token başına ücretlendirilir: 1 milyon token başına metin girdi 5 $, görsel girdi 8 $, görsel çıktı 30 $. Düzenlemede gönderdiğiniz görseller görsel girdi, üretilen görsel görsel çıktı fiyatından sayılır. Markup için ayrı bir ücret yoktur. GIF'in çıktı tutarı kaliteye, kare sayısına ve kare boyutuna göre değişebilir; önce quality low ile deneyin.
OpenAI'nin fiyat tablosunda önbellekli fiyat görünse de LLMTR'de bu modellerde önbellek indirimi uygulanmaz, her istek tam girdi fiyatından sayılır. Kesin tutar yanıttaki usage alanından hesaplanır. İstek başlamadan bakiyenizden olası en yüksek tutar ayrılır, boyut göndermediğiniz istekler en yüksek tutarla ayrılır; düşük bakiyeyle çalışıyorsanız boyutu ve kaliteyi açıkça yazın.
Sık görülen hatalar ve çözümleri
Hata yanıtları error alanında bir tür ve bir açıklama taşır. Sağlayıcının reddettiği diğer istekler 4xx döner; o durumda alanları kontrol edip düzeltin. GIF ve düzenlemede en sık görülen hatalar:
- 400 invalid_request, frame_count ya da frame_duration_ms aralık dışında, size 16'nın katı değil ya da frame_count alanı output_format gif olmadan gönderildi: mesajdaki alanı düzeltin; bu istek ücretlendirilmez.
- 400 invalid_request, markup ve mask aynı istekte: birini çıkarın.
- 400 unsupported_input, görsel türü desteklenmiyor ya da file_id gönderildi: PNG, JPEG ya da WebP gönderin, image_url kullanın.
- 400 unsupported_output, düzenleme ucunda GIF istendi: GIF'i https://llmtr.com/v1/images/generations adresinden isteyin.
- 400 content_filter, istek sağlayıcının içerik politikasına takıldı: istemi ya da görselleri değiştirin, aynı isteği tekrarlamayın.
- 402 insufficient_credits, bakiye bu isteğe yetmiyor: kredi yükleyin, boyutu ve kaliteyi açıkça yazın ya da daha düşük bir kalite seçin.
API ile animasyonlu GIF üretimi ve markup ile düzenleme
Bir API anahtarı oluşturun, https://llmtr.com/v1/images/generations adresinden GIF üretin ve https://llmtr.com/v1/images/edits adresinde saydam bir PNG ile görsel düzenleyin.
- Anahtar. llmtr.com'da bir API anahtarı oluşturun, Panel > Faturalandırma'dan bakiye yükleyin ve anahtarı LLMTR_API_KEY ortam değişkenine koyun.
- GIF. https://llmtr.com/v1/images/generations adresine output_format gif, frame_count, frame_duration_ms ve size alanlarını gönderin; data[0].b64_json değerini .gif olarak kaydedin.
- Düzenleme. İlk görselle aynı boyutta saydam bir PNG hazırlayın, images ve markup alanlarıyla https://llmtr.com/v1/images/edits adresine gönderin ve sonuca bir kişi baksın.
Sık sorulan sorular
GIF düzenleme ucunda üretilebilir mi?
Hayır. output_format gif yalnızca https://llmtr.com/v1/images/generations adresinde kullanılır; düzenleme ucu GIF çıktısı vermez. frame_count 2 ile 16, frame_duration_ms 20 ile 2000 arasında olmalıdır.
Markup için ayrı ücret ödenir mi?
Hayır, markup için ayrı bir ücret yoktur. Gönderdiğiniz görseller görsel girdi, üretilen görsel görsel çıktı fiyatından sayılır. markup ile mask aynı istekte kullanılamaz.
OpenAI SDK'sı ile görsel düzenlenebilir mi?
SDK'nın images.edit yöntemi çok parçalı form gönderir ve bu uç nokta onu kabul etmez. https://llmtr.com/v1/images/edits adresine requests gibi bir HTTP istemcisiyle JSON gövdesi gönderin.