Örnekler
Çeşitli kullanım durumları için pratik örnekler ve kod parçacıkları
Qwen Image Edit Kullanım Örnekleri
Bu bölüm, Qwen Image Edit'in çeşitli görsel düzenleme görevleri için nasıl kullanılacağına dair pratik örnekler sunar. Burada metin düzenleme, öğe ekleme, stil aktarımı, toplu işleme ve belirli kullanım durumlarına ilişkin örnekler bulacaksınız.
1. Temel Metin Düzenleme
Görsellerdeki metni değiştirin, çevirin veya düzeltin.
Örnek 1.1: Mevcut Metni Değiştirme
// JavaScript/TypeScript
async function modifyExistingText() {
try {
const result = await client.edit({
image: 'https://example.com/image-with-old-text.jpg',
prompt: '"Welcome" metnini "Hello World" olarak değiştir',
});
console.log('Düzenlenmiş görsel şurada mevcut:', result.edited_image_url);
} catch (error) {
console.error('Metin düzenlenirken hata oluştu:', error);
}
}
modifyExistingText();
Örnek 1.2: Metin Çevirisi
# Python
def translateTextInImage():
try:
result = client.edit(
image='https://example.com/image-with-english-text.jpg',
prompt='"Sale" metnini İspanyolca\'ya çevir',
)
print(f"Düzenlenmiş görsel şurada mevcut: {result.edited_image_url}")
except Exception as e:
print(f"Metin çevrilirken hata oluştu: {e}")
translateTextInImage()
Örnek 1.3: Yazım Hatalarını Düzeltme
// PHP
<?php
require 'vendor/autoload.php';
use QwenImageEdit\QwenImageEdit;
$client = new QwenImageEdit([
'apiKey' => 'YOUR_API_KEY',
'region' => 'YOUR_REGION',
]);
try {
$result = $client->edit([
'image' => 'https://example.com/image-with-typo.jpg',
'prompt' => '"recieve" kelimesindeki yazım hatasını "receive" olarak düzelt',
]);
echo 'Düzenlenmiş görsel şurada mevcut: ' . $result['edited_image_url'] . "\n";
} catch (Exception $e) {
echo 'Yazım hataları düzeltilirken hata oluştu: ' . $e->getMessage() . "\n";
}
?>
2. Öğe Ekleme ve Manipülasyonu
Logolar, filigranlar, fiyat etiketleri veya diğer bilgilendirici öğeler ekleme.
Örnek 2.1: Logo Ekleme
// Java
import com.qwen.imageedit.QwenImageEditClient;
import com.qwen.imageedit.models.EditRequest;
public class AddLogo {
public static void main(String[] args) {
QwenImageEditClient client = new QwenImageEditClient("YOUR_API_KEY", "YOUR_REGION");
EditRequest request = new EditRequest()
.setImage("https://example.com/product-photo.jpg")
.setPrompt("Şirket logomu sağ alt köşeye ekle")
.setElements(Arrays.asList(
new Element().setType("image").setSrc("https://example.com/my-logo.png").setPosition("bottom-right")
));
try {
EditResponse response = client.edit(request);
System.out.println("Düzenlenmiş görsel şurada mevcut: " + response.getEditedImageUrl());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Örnek 2.2: Fiyat Etiketi Ekleme
// Go
package main
import (
"context"
"fmt"
"log"
qwenimageedit "github.com/qwen-image-edit/sdk/go"
)
func main() {
client := qwenimageedit.NewClient("YOUR_API_KEY", "YOUR_REGION")
resp, err := client.Edit(context.Background(), &qwenimageedit.EditRequest{
Image: "https://example.com/product-item.jpg",
Prompt: "Sağ üst köşeye 29.99 dolarlık bir fiyat etiketi ekle",
Elements: []qwenimageedit.Element{{
Type: "text",
Content: "$29.99",
Position: "top-right",
Style: map[string]interface{}{"color": "red", "fontSize": 24},
}},
})
if err != nil {
log.Fatalf("Düzenleme hatası: %v", err)
}
fmt.Printf("Düzenlenmiş görsel şurada mevcut: %s\n", resp.EditedImageUrl)
}
3. Gelişmiş Stil Aktarımı
Görsellerinize sanatsal veya fotoğrafik stiller uygulama.
Örnek 3.1: Sanatsal Stil Uygulama
# Ruby
require 'qwen_image_edit'
client = QwenImageEdit::Client.new(api_key: 'YOUR_API_KEY', region: 'YOUR_REGION')
begin
result = client.edit(
image: 'https://example.com/my-photo.jpg',
prompt: 'Van Gogh tablosu gibi sanatsal bir stil uygula',
style_transfer: { preset: 'van_gogh' }
)
puts "Düzenlenmiş görsel şurada mevcut: #{result.edited_image_url}"
rescue QwenImageEdit::Error => e
puts "Stil aktarımı hatası: #{e.message}"
end
4. Toplu İşleme
Verimlilik için birden fazla görseli aynı anda düzenleme.
Örnek 4.1: E-ticaret Kataloğu Güncellemesi
// JavaScript/TypeScript
async function batchUpdateProducts(imageUrls) {
const results = [];
for (const url of imageUrls) {
try {
const result = await client.edit({
image: url,
prompt: 'Sol üst köşeye "%20 İndirim" rozeti ekle',
});
results.push({ original: url, edited: result.edited_image_url });
} catch (error) {
console.error(`${url} işlenirken hata oluştu:`, error);
results.push({ original: url, error: error.message });
}
}
console.log('Toplu işleme sonuçları:', results);
}
batchUpdateProducts([
'https://example.com/product1.jpg',
'https://example.com/product2.jpg',
'https://example.com/product3.jpg',
]);
Örnek 4.2: Çok Dilli İçerik Yerelleştirmesi
# Python
def batchLocalizeImages(image_text_pairs):
results = []
for item in image_text_pairs:
try:
result = client.edit(
image=item['image_url'],
prompt=f"'{item['original_text']}' metnini Fransızca'ya çevir"
)
results.append({'original': item['image_url'], 'edited': result.edited_image_url})
except Exception as e:
results.append({'original': item['image_url'], 'error': str(e)})
print("Toplu yerelleştirme sonuçları:", results)
batchLocalizeImages([
{'image_url': 'https://example.com/ad-en.jpg', 'original_text': 'Limited Offer'},
{'image_url': 'https://example.com/banner-en.jpg', 'original_text': 'New Collection'},
])
5. Belirli Kullanım Durumları
Örnek 5.1: Mevsimlik E-ticaret Varyantları
Ürün görsellerini farklı mevsimler veya promosyonlar için hızla güncelleme.
// JavaScript/TypeScript
async function seasonalProductUpdate(productImage, season) {
let prompt;
if (season === 'winter') {
prompt = 'Görsele hafif kar ve kış efektleri ekle.';
} else if (season === 'summer') {
prompt = 'Görseli daha parlak ve güneşli hale getir, yaz havası kat.';
}
try {
const result = await client.edit({
image: productImage,
prompt: prompt,
});
console.log(`${season} ürün görseli şurada mevcut:`, result.edited_image_url);
} catch (error) {
console.error('Mevsimlik ürün güncellenirken hata oluştu:', error);
}
}
seasonalProductUpdate('https://example.com/dress.jpg', 'winter');
Örnek 5.2: Eğitim Diyagramı Açıklaması
Eğitim diyagramlarına etiketler, oklar veya açıklamalar ekleme.
# Python
def annotateDiagram(diagramImage, annotations):
elements = []
for ann in annotations:
if ann['type'] == 'text':
elements.append({'type': 'text', 'content': ann['text'], 'position': ann['position']})
elif ann['type'] == 'arrow':
elements.append({'type': 'shape', 'shape': 'arrow', 'start': ann['start'], 'end': ann['end']})
try:
result = client.edit(
image=diagramImage,
prompt='Belirtilen açıklamaları diyagrama ekle.',
elements=elements
)
print(f"Açıklamalı diyagram şurada mevcut: {result.edited_image_url}")
except Exception as e:
print(f"Diyagram açıklanırken hata oluştu: {e}")
annotateDiagram(
'https://example.com/biology-diagram.png',
[
{'type': 'text', 'text': 'Bitki Hücresi', 'position': 'top-left'},
{'type': 'arrow', 'start': [100, 100], 'end': [150, 150]}
]
)
Örnek 5.3: Sosyal Medya İçeriği Optimizasyonu
Sosyal medya için hızla ilgi çekici görseller oluşturma.
// PHP
<?php
require 'vendor/autoload.php';
use QwenImageEdit\QwenImageEdit;
$client = new QwenImageEdit([
'apiKey' => 'YOUR_API_KEY',
'region' => 'YOUR_REGION',
]);
try {
$result = $client->edit([
'image' => 'https://example.com/social-post-draft.jpg',
'prompt' => 'Bu görseli sosyal medya için daha canlı ve çekici hale getir, "Özel Teklif!" yazan bir metin katmanı ekle',
'elements' => [
['type' => 'text', 'content' => 'Özel Teklif!', 'position' => 'center', 'style' => ['fontSize' => 48, 'color' => 'white', 'backgroundColor' => 'rgba(0,0,0,0.5)']]
]
]);
echo 'Optimize edilmiş sosyal medya görseli şurada mevcut: ' . $result['edited_image_url'] . "\n";
} catch (Exception $e) {
echo 'Sosyal medya görseli optimize edilirken hata oluştu: ' . $e->getMessage() . "\n";
}
?>
6. İş Akışı Otomasyonu
Görsel düzenleme görevlerini otomatikleştirmek için Qwen Image Edit'i mevcut iş akışlarınıza entegre edin.
Örnek 6.1: Yükleme Sonrası Görsel İşleme
Görseller nesne depolamaya yüklendikten sonra otomatik olarak işlemek için bulut işlevlerini (örn. AWS Lambda, Google Cloud Functions) veya web kancalarını kullanabilirsiniz.
# Python (Lambda işlevi örneği)
import json
import os
from qwen_image_edit_sdk import QwenImageEdit
client = QwenImageEdit(
api_key=os.environ.get("QWEN_IMAGE_EDIT_API_KEY"),
region=os.environ.get("QWEN_IMAGE_EDIT_REGION")
)
def lambda_handler(event, context):
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
image_url = f"https://{bucket}.s3.amazonaws.com/{key}"
try:
result = client.edit(
image=image_url,
prompt='Sağ alt köşeye küçük bir "Qwen AI" filigranı ekle.',
)
print(f"Görsel {key} işlendi. Düzenlenmiş görsel: {result.edited_image_url}")
except Exception as e:
print(f"Görsel {key} işlenirken hata oluştu: {e}")
return {
'statusCode': 200,
'body': json.dumps('Görseller başarıyla işlendi!')
}
7. Performans Optimizasyonu
API çağrılarının performansını artırmak için ipuçları.
- Akıllı Önbellekleme: Tekrarlanan işlemeyi önlemek için düzenlenmiş görsel sonuçlarını önbelleğe alın.
- Yeniden Denemelerle Sağlam Hata Yönetimi: Geçici ağ veya API hatalarını ele almak için yeniden deneme mantığı uygulayın.
// JavaScript/TypeScript (Yeniden deneme örneği)
async function reliableEdit(imageUrl, prompt, retries = 3) {
for (let i = 0; i < retries; i++) {
try {
const result = await client.edit({
image: imageUrl,
prompt: prompt,
});
return result.edited_image_url;
} catch (error) {
console.warn(`Düzenleme denemesi ${i + 1} başarısız oldu. Yeniden deneniyor...`, error);
if (i === retries - 1) throw error; // Son deneme ise hatayı tekrar fırlat
await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1))); // Üstel geri çekilme
}
}
}
reliableEdit('https://example.com/image.jpg', 'Siyah beyaz yap.')
.then(url => console.log('Görsel başarıyla düzenlendi:', url))
.catch(err => console.error('Birden fazla denemeden sonra düzenleme başarısız oldu:', err));