Sosyal Medya Poster Üretim Sistemi

Teknik Dokümantasyon - 6 Mart 2026

Production Ready OpenAI + Gemini Nano Banana Pro

SİSTEM ÖZETİ

Bu sistem, ürün bilgilerinden otomatik olarak Instagram reklam posterleri üretir. OpenAI yaratıcı içerik (slogan, subtitle, specs) üretir, Gemini Nano Banana Pro görsel tasarımı yapar.

🤖
OpenAI GPT-4
İçerik & Prompt Üretimi
🍌
Nano Banana Pro
Görsel Üretimi
🖼️
PHP Intervention
Watermark Overlay

SİSTEM AKIŞI

┌─────────────────────────────────────────────────────────────────────────┐
│                         POSTER ÜRETİM AKIŞI                             │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  1. ÜRÜN VERİSİ                                                         │
│     ├─ Ürün adı, model, özellikler                                     │
│     ├─ Ürün görseli (PNG, şeffaf arka plan)                            │
│     └─ Tenant bilgileri (marka, watermark)                             │
│                          ↓                                              │
│  2. OPENAI (GPT-4)                                                      │
│     ├─ Input: Ürün bilgileri + yaratıcı brief                          │
│     ├─ Output: JSON {slogan, subtitle, specs, gemini_prompt}           │
│     └─ Tüm yaratıcı kararlar AI'ya bırakılır                           │
│                          ↓                                              │
│  3. GEMINI NANO BANANA PRO                                              │
│     ├─ Input: OpenAI'nin ürettiği prompt + referans görsel             │
│     ├─ Aspect Ratio: 4:5 (1152x1536 px)                                │
│     ├─ Output: PNG poster (watermark alanı boş)                        │
│     └─ Premium tipografi, glassmorphism, endüstriyel arka plan         │
│                          ↓                                              │
│  4. PHP INTERVENTION IMAGE                                              │
│     ├─ Poster resize (watermark boyutuna)                              │
│     ├─ Watermark overlay (tenant logosu + iletişim)                    │
│     └─ Final JPEG/PNG kaydet                                           │
│                          ↓                                              │
│  5. SONUÇ                                                               │
│     └─ Instagram-ready poster (1152x1536 px, 4:5 ratio)                │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

KULLANILAN AI MODELLERİ

Model Sağlayıcı Kullanım Maliyet
gpt-4 OpenAI İçerik üretimi, prompt mühendisliği ~$0.03/1K token
nano-banana-pro-preview Google Gemini Yüksek kalite görsel üretimi $0.039/görsel
gemini-2.5-flash-image Google Gemini Hızlı görsel üretimi (alternatif) $0.039/görsel

ÖLÇÜLER & BOYUTLAR

Poster Boyutları

Aspect Ratio4:5
Çözünürlük1152 x 1536 px
FormatPNG / JPEG

Watermark Alanı

KonumAlt 200px
İçerikLogo + Telefon + Website
Dosyasocial-w.png

Poster Bölgeleri

┌────────────────────────────┐
│  TOP (0-25%)               │  ← Slogan + Subtitle
│  Tipografi alanı           │
├────────────────────────────┤
│                            │
│  MIDDLE (25-70%)           │  ← Ürün HERO
│  Forklift görseli          │
│                            │
├────────────────────────────┤
│  SPECS (70-85%)            │  ← Özellikler (subtle)
│  Glassmorphism paneller    │
├────────────────────────────┤
│  EMPTY (85-100%)           │  ← WATERMARK İÇİN BOŞ
│  200px tamamen boş         │
└────────────────────────────┘

OPENAI PROMPT (İçerik Üretimi)

Bu prompt OpenAI'ye gönderilir. AI hem içerik hem de Gemini için prompt üretir.

Sen dünyaca ünlü bir reklam ajansının yaratıcı direktörüsün.

GÖREV: Instagram reklam posteri için Gemini AI prompt'u hazırla.

ÜRÜN:
- Marka: {MARKA}
- Model: {MODEL}
- Tip: {TIP}
- Özellikler: {OZELLIKLER}

TÜM YARATICI KARARLAR SENİN:
- Slogan, subtitle, badge, specs gösterilsin mi, tipografi, renk, layout, efektler... HEPSİ SENİN

ZORUNLU KURALLAR (SADECE 3 TANE):
1. ⛔ TÜM METİNLER TÜRKÇE OLMALI - İngilizce kelime YASAK
2. ⛔ Referans görseldeki forklift AYNEN kullanılmalı - rengi, şekli, detayları DEĞİŞMEMELİ
3. ⛔ Alt 200 piksel TAMAMEN BOŞ (watermark için)

Bunlar dışında TAMAMEN ÖZGÜRSÜN. Premium, yaratıcı, dikkat çekici bir reklam tasarla.

JSON formatında döndür:
{
  "creative_concept": "Konsept açıklaması (Türkçe)",
  "gemini_prompt": "Detaylı İngilizce Gemini prompt"
}

GEMINI PROMPT (Görsel Üretimi)

OpenAI'nin ürettiği prompt Gemini'ye gönderilir. Örnek başarılı prompt:

Create an Instagram advertisement poster featuring the IXTIF CPD20FVL 2.0 Ton Li-Ion Forklift.

CRITICAL - PRODUCT IMAGE:
The forklift must be depicted EXACTLY as in the reference image: red and black color,
same shape and details. Do NOT change the forklift colors or design. Copy it faithfully.

CONTENT (ALL TURKISH - NO ENGLISH):
- Slogan: "Güçlü Performans, Akıllı Çözümler" (bold, premium typography)
- Subtitle: "İş Gücünüzü Artırın" (elegant supporting text)
- Badge/Specs: "2.0 Ton Kapasite" | "80V/205Ah Li-Ion" | "Çift Tahrikli Motor" (subtle, minimal)

DESIGN:
Use modern and bold typography. The layout should be sleek, with dynamic graphic elements
that emphasize the forklift power and efficiency. Premium, eye-catching design that conveys
innovation and reliability.

MANDATORY:
- Bottom 200 pixels must be COMPLETELY EMPTY for watermark
- No logo or brand name
- All text in TURKISH only

Aspect ratio: 4:5 (1152x1536 pixels)

PHP KODLARI

1. GeminiService - Görsel Üretimi

use Modules\AI\App\Services\GeminiService;

$gemini = app(GeminiService::class);

// Nano Banana Pro kullan (yüksek kalite)
$gemini->useNanoBananaPro();

// Poster üret
$result = $gemini->generateImage($prompt, [
    'aspect_ratio' => '4:5',
    'reference_image' => '/path/to/product.png',
    'save_path' => '/path/to/output/poster.png'
]);

if ($result['success']) {
    echo "Poster oluşturuldu: " . $result['saved_path'];
    echo "Süre: " . $result['time_ms'] . "ms";
}

2. Watermark Ekleme

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

$manager = new ImageManager(new Driver());

// Poster ve watermark yükle
$poster = $manager->read('/path/to/poster.png');
$watermark = $manager->read('/path/to/watermark.png');

// Watermark boyutuna resize
$poster->resize($watermark->width(), $watermark->height());

// Watermark overlay
$poster->place($watermark, 'top-left', 0, 0);

// Kaydet
$poster->save('/path/to/final-poster.png');

3. Tam Akış (OpenAI + Gemini + Watermark)

use Modules\AI\App\Services\OpenAIService;
use Modules\AI\App\Services\GeminiService;
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// 1. ÜRÜN VERİSİ
$product = [
    'brand' => 'İXTİF',
    'model' => 'CPD20FVL',
    'type' => '2.0 Ton Li-Ion Forklift',
    'features' => '80V/205Ah Li-Ion, çift tahrikli motor, entegre şarj',
    'image_path' => '/path/to/product.png',
];

// 2. OPENAI - İçerik üret
$openai = app(OpenAIService::class);
$contentPrompt = "... OpenAI prompt (yukarıdaki) ...";
$response = $openai->ask($contentPrompt, false, ['max_tokens' => 2000]);
$content = json_decode($response, true);

// 3. GEMINI - Poster üret
$gemini = app(GeminiService::class);
$gemini->useNanoBananaPro();

$result = $gemini->generateImage($content['gemini_prompt'], [
    'aspect_ratio' => '4:5',
    'reference_image' => $product['image_path'],
    'save_path' => '/tmp/poster-raw.png'
]);

// 4. WATERMARK - Overlay ekle
$manager = new ImageManager(new Driver());
$poster = $manager->read('/tmp/poster-raw.png');
$watermark = $manager->read('/path/to/watermark.png');
$poster->resize($watermark->width(), $watermark->height());
$poster->place($watermark, 'top-left', 0, 0);
$poster->save('/path/to/final-poster.png');

echo "✅ Poster hazır!";

DOSYA YAPISI

Modules/AI/
├── App/
│   └── Services/
│       └── GeminiService.php          ← Ana görsel üretim servisi
├── config/
│   └── config.php                      ← Model konfigürasyonları
└── Providers/
    └── AIServiceProvider.php

Modules/SocialMedia/                    ← (Opsiyonel) Tam modül
├── App/
│   └── Services/
│       ├── PosterGeneratorService.php  ← Poster üretim servisi
│       ├── TextGeneratorService.php    ← OpenAI içerik servisi
│       └── WatermarkService.php        ← Watermark overlay
└── config/
    └── tenants/                        ← Tenant bazlı ayarlar
        ├── ixtif.php
        └── muzibu.php

public/
├── social-w.png                        ← Watermark template
└── posters/                            ← Üretilen posterler
    └── {tenant}/
        └── {date}/
            └── poster-{id}.png

GeminiService.php - Anahtar Metodlar

Metod Açıklama
useNanoBananaPro() Yüksek kalite model seç (nano-banana-pro-preview)
useNanoBanana2() Hızlı model seç (gemini-2.5-flash-image)
generateImage($prompt, $options) Görsel üret (aspect_ratio, reference_image, save_path)
ask($prompt) Text generation (slogan üretimi için)
getUsageStats() Kullanım istatistikleri ve bütçe durumu

GÜVENLİK ÖNLEMLERİ

$10
Aylık Hard Cap
200
Günlük Limit
3
Max Retry

• Rate limiting (günlük/saatlik/dakikalık)

• Circuit breaker (10 ardışık hata = 1dk bekleme)

• Loop detection (25 aynı istek = engel)

• Cost tracking & budget warning

BAŞARILI SONUÇ ÖRNEĞİ

Poster Özellikleri

Slogan"Güçlü Performans, Akıllı Çözümler"
Subtitle"İş Gücünüzü Artırın"
SpecsGlassmorphism paneller
Arka PlanEndüstriyel, dramatik
Üretim Süresi~23 saniye

Görsel

Örnek Poster

Tam boyut görüntüle →

KONFİGÜRASYON

.env Dosyası

# Google Gemini API
GEMINI_API_KEY=your-api-key-here

# OpenAI API
OPENAI_API_KEY=your-openai-key-here

config/ai.php - Gemini Bölümü

'gemini' => [
    'api_key' => env('GEMINI_API_KEY', ''),
    'base_url' => 'https://generativelanguage.googleapis.com/v1beta',
    'model' => 'gemini-2.5-flash',
    'image_model' => 'gemini-2.5-flash-image',

    'image_models' => [
        'nano_banana_2' => 'gemini-2.5-flash-image',
        'nano_banana_pro' => 'nano-banana-pro-preview',
    ],

    'supported_aspect_ratios' => [
        '1:1', '2:3', '3:2', '3:4', '4:3',
        '4:5', '5:4', '9:16', '16:9', '21:9',
    ],

    'image_timeout' => 180,
],
6 Mart 2026 • tuufi.com