Qwen-Image-Edit-2509 Eğitimi: Stüdyo Düzeyinde Ürün Açıları Oluşturun
Tek bir fotoğrafı Qwen-Image-Edit-2509 ve LoRA ile birden çok ürün çekimine dönüştürün. Amazon, Etsy ve çevrim içi mağazalar için tutarlı stüdyo açılarını saniyeler içinde üretin.
Tek başına satış yapanlar ve küçük markaların tam kapsamlı bir ürün fotoğraf çekimi için nadiren bütçesi olur. Bu rehberde, tek bir girdi görselini, Qwen-Image-Edit-2509 kullanarak e-ticarete hazır, çok açılı ürün render’larına (geniş, makro, ±45°, tepeden) dönüştüren ve tekrarlanabilir yapay zekâ ürün fotoğrafçılığı için LoRA tabanlı sanal kamera kontrolleri sunan bir Gradio uygulaması inşa edip çalıştıracağız.
Arka planda şunları kullanıyoruz:
Temel model: Qwen/Qwen-Image-Edit-2509 (Apache-2.0)
Açı kontrol LoRA’sı: dx8152/Qwen-Edit-2509-Multiple-angles
İsteğe bağlı hız LoRA’sı:lightx2v/Qwen-Image-Lightning
Bu eğitimde şunları öğreneceksiniz:
Qwen düzenleme hattını yüklemek ve birden çok LoRA’yı üst üste eklemek.
Sağlam açı makrolarıyla kamera hareketlerini yönlendirmek.
İçerik üreticileri ve e-ticaret ekipleri için sade bir Gradio arayüzü oluşturmak.
Sonuçların tümünü kolay teslim için ZIP olarak dışa aktarmak.
Görüntü verisinin derin öğrenmede nasıl işlendiği hakkında daha fazla bilgi edinmek isterseniz Python ile Görüntü İşleme beceri yoluna göz atın.
Neden Qwen Image Edit’i Multiple Angles LoRA ile Kullanmalı?
Qwen-Image-Edit-2509, Qwen’in görüntü düzenleme modelinin tutarlılığı ve çoklu görüntü düzenlemesi geliştirilmiş en yeni sürümüdür. Multiple-Angles LoRA, güvenilir “sanal kamera” kontrolleri ekler; böylece şunları söyleyebilirsiniz:
将镜头转为广角镜头 (geniş açıya geç)
将镜头转为特写镜头 (yakın plana geç)
将镜头向左旋转45度 (45° sola döndür)
将镜头转为俯视 (tepeden görünüm)
Bu komutlar, ürünü yeni bir ürüne hayal etmeden tutarlı biçimde yeniden kadrajlar.
Qwen Image Edit Adım Adım Eğitim: Ürün Çekimi Güçlendirici Oluşturma
Bu rehberde, tek bir ürün görselini isteğe bağlı yaşam tarzı hazır ayarları ve hızlı önizleme modu ile stüdyo hazır bir açı setine (geniş, yakın plan, 45° sol/sağ ve tepeden gibi) dönüştüren bir uygulama kuracağız. Uygulama, Gradio arayüzüne sarılı Qwen/Qwen-Image-Edit-2509 modelini ve Multiple-Angles LoRA’yı kullanır.
Ortam kurulumundan model yüklemeye, üretim yardımcılarından web arayüzüne kadar ilerleyeceğiz.
Adım 1: Önkoşullar
Önce tüm çalışma zamanı bağımlılıklarını kurun. CUDA tekerlekleriyle PyTorch, Hugging Face araçları, Diffusers kütüphanesi, arayüz için Gradio ve görsel işlemede Pillow/OpenCV kullanıyoruz.
CUDA Tekerlekleri: PyTorch satırı, GPU hızlandırma için NVIDIA CUDA 12.1 tekerleklerine işaret eder.
Transformers ve Diffusers: Transformers yapılandırmaları ve belirteçleyicileri yönetirken, Diffusers QwenImageEditPlusPipeline’ı sağlar.
Safetensors: Güvenli bir tensör biçimi sunar (Pickle’dan daha hızlı ve daha güvenli).
OpenCV-headless ve Pillow: Sağlam görsel G/Ç ve yeniden boyutlandırma sağlayarak ön/son işlemeyi destekler.
Gradio: Yerelde ve Colab’da çalışan hızlı bir web arayüzüdür.
Ortam hazır olduğunda, Hugging Face’e kimlik doğrulaması yapabilir (isteğe bağlı) ve modelleri yükleyebiliriz.
Adım 2: Hugging Face kimlik doğrulaması
Bazı modeller veya adaptörler HuggingFace üzerinden kimlik doğrulaması gerektirebilir. Bu adım, oturum için bir kez giriş yapar.
from huggingface_hub import login
import os
HF_TOKEN ="Your_HF_Token"# @param {type:"string"}if HF_TOKEN:
login(token=HF_TOKEN)print("Logged in to Hugging Face")else:print("WARNING: No token provided. Continuing without authentication")Altyapı:
Önce HuggingFace hesabınıza giriş yapın ve hesap ayarlarınızda Erişim Jetonlarını bulun. Yeni jeton oluştur’a tıklayın ve Okuma türünde yeni bir jeton üretin. Gerekli izinleri seçin ve yeni jetonu oluşturun.
Canlı/Colab ortamlarında jetonları kod içine gömmeyin; bunun yerine ortam değişkenlerini veya Colab “Gizli Anahtarlar”ını kullanın.
Adım 3: Modeli yükleyin ve hattı kurun
Bu bölümde, Qwen-Image-Edit hattını kuruyor, açı LoRA’sını yüklüyor ve GPU farkındalıklı ayarlarla bir Hızlı geçişi ekliyoruz. Bu kodun yüksek RAM’li bir A100 GPU’da verimli çalıştığını unutmayın.
Adım 3.1: İçe aktarmalar ve GPU yapılandırması
Şimdi temel kütüphaneleri içe aktaracağız ve hassasiyet, attention slicing ve VAE slicing’i kararlılık için otomatik ayarlamak üzere GPU’yu algılayacağız.
import io
import zipfile
from typing import List, Tuple, Optional
import gc
import torch
from PIL import Image
from diffusers import QwenImageEditPlusPipeline
import gradio as gr
defget_gpu_config():ifnot torch.cuda.is_available():return{'device':'cpu','dtype': torch.float32,'gpu_name':'CPU','vram_gb':0,'max_batch':1,'enable_attention_slicing':True,'enable_vae_slicing':True,}
gpu_name = torch.cuda.get_device_name(0)
vram_gb = torch.cuda.get_device_properties(0).total_memory /1e9if'T4'in gpu_name or vram_gb <20:return{'device':'cuda','dtype': torch.bfloat16,'gpu_name': gpu_name,'vram_gb': vram_gb,'max_batch':1,'enable_attention_slicing':True,'enable_vae_slicing':True,}else:return{'device':'cuda','dtype': torch.bfloat16,'gpu_name': gpu_name,'vram_gb': vram_gb,'max_batch':2,'enable_attention_slicing':False,'enable_vae_slicing':False,}
gpu_config = get_gpu_config()
HF_BASE_MODEL ="Qwen/Qwen-Image-Edit-2509"
LORA_ANGLES ="dx8152/Qwen-Edit-2509-Multiple-angles"
LORA_LIGHTNING ="lightx2v/Qwen-Image-Lightning"
ANGLE_MACROS ={"Wide-angle":"将镜头转为广角镜头","Close-up":"将镜头转为特写镜头","Forward":"将镜头向前移动","Left":"将镜头向左移动","Right":"将镜头向右移动","Down":"将镜头向下移动","Rotate 45° Left":"将镜头向左旋转45度","Rotate 45° Right":"将镜头向右旋转45度","Top-down":"将镜头转为俯视",}
BACKGROUND_PRESETS ={"(None)":None,"Pure Studio (white seamless)":"in a professional studio with seamless white background, soft shadows, product centered","Soft Gray Studio":"in a professional studio with seamless soft gray background, gentle vignette, softbox lighting","Lifestyle (cozy desk)":"on a cozy wooden desk near a window, soft natural light, minimal props","Lifestyle (marble)":"on a clean white marble surface, bright daylight, subtle reflections","Lifestyle (outdoor)":"outdoors on a neutral table, soft shade, bokeh background",}
ASPECT_RATIOS ={"1:1 (Square)":(1024,1024),"4:3 (Standard)":(1024,768),"3:4 (Portrait)":(768,1024),"16:9 (Widescreen)":(1024,576),"9:16 (Mobile)":(576,1024),"3:2 (Photo)":(1024,683),"2:3 (Portrait Photo)":(683,1024),}Altyapı:
Yukarıdaki kod bloklarının ana bileşenleri şunlardır:
GPU otomatik yapılandırma (get_gpu_config işlevi): Mevcut hızlandırıcıyı algılarız ve cihazı (cpu/cuda), dtype’ı (GPU’da bfloat16 gibi) ve bellek davranışlarını seçmek için kullanılan küçük bir yapılandırma sözlüğü döndürürüz:
CPU’da güvenlik için varsayılan olarak float32 kullanır ve attention/VAE slicing’i etkinleştiririz.
20 GB+ GPU’larda (A100 gibi) slicing’i devre dışı bırakır ve hız için daha büyük yığınlara izin veririz.
Model kimlikleri ve adaptörler: Qwen-Image-Edit-2509’u çekirdekteki düzenleyici olarak yükler, kamera kontrolü için Multiple-angles LoRA’yı ekler ve Hızlı Mod’a geçtiğinizde isteğe bağlı olarak Lightning LoRA’yı harmanlarız.
HF_BASE_MODEL = "Qwen/Qwen-Image-Edit-2509" ana görüntü düzenleme omurgasıdır.
LORA_LIGHTNING = "lightx2v/Qwen-Image-Lightning" hızlı önizlemeler için isteğe bağlı bir hız adaptörüdür.
Not: HQ Modu için yalnızca açı adaptörü etkin kalır.
Açı makroları: ANGLE_MACROS, “Wide-angle” veya “Top-down” gibi etiketleri, açı LoRA’sının güvenle anladığı eşdeğer Çince komutlara eşler. Bu komutlar, kimliği değiştirmeden sanal kamerayı (hareket/döndür/zoom) tutarlı biçimde hareket ettirir.
Arka plan hazır ayarları: BACKGROUND_PRESETS, nihai isteme birleştirdiğimiz “mermer yüzey”, “yumuşak gri stüdyo” gibi kısa İngilizce parçacıklardır. Bunlar açı makrolarından bağımsızdır ve sahnenin kontrolünden sorumludur.
En-boy oranları (ASPECT_RATIOS): Bunlar, tuval (1:1, 4:3, 16:9 vb.) üretmemize ve çıkışların üretim sonrası kırpmaya ihtiyaç duymaması için girdiyi çıkarıma geçmeden önce yeniden boyutlandırmamıza veya ortadan kırpmamıza olanak tanır.
Artık GPU ve adaptörler hazır. Şimdi Diffusers hattını başlatalım ve LoRA’ları ekleyelim.
Adım 3.2: Hat
Sırada, temel Qwen Edit hattını yüklüyor, GPU’ya göre bellek iyileştirmelerini etkinleştiriyor ve Multiple-Angles LoRA’yı üst üste ekliyoruz. Ayrıca hızlı önizlemeler için isteğe bağlı olarak Lightning LoRA’yı ekleyen bir mod anahtarı uyguluyoruz.
Yukarıdaki kod, Ürün Çekimi Güçlendirici uygulaması için hat kurulum katmanıdır ve şu işlevleri yerine getirir:
Hat başlatma:QwenImageEditPlusPipeline’ı temel modelden (Qwen/Qwen-Image-Edit-2509) oluşturur, algılanan cihaza (CPU/GPU) taşır ve donanımınıza göre tensör hassasiyetini (torch_dtype) ayarlar.
Bellek güvenliği: Daha küçük GPU’larda, tepe VRAM’i düşürmek ve bellek taşmalarından kaçınmak için attention ve VAE slicing’i etkinleştirir; bunun karşılığında az miktarda hız fedakârlığı yapılır.
LoRA bileşimi: Tekrarlanabilir “sanal kamera” kontrolleri (hareket/döndür/zoom) sağlamak için Multiple-angles LoRA’yı yükler ve isteğe bağlı olarak daha hızlı önizlemeler için Lightning LoRA’yı harmanlar.
Mod değiştirme mantığı:set_pipeline_mode() yardımcı işlevi ve current_mode bayrağı, gereksiz Lightning yeniden yüklemelerini önleyerek HQ ile Hızlı durumlarını yönetir ve adaptörler arasında geçiş yapmanızı sağlar.
Hat artık hazır. Şimdi üretim işlevlerini ve Gradio arayüzünü bağlayalım.
Adım 4: Üretim işlevleri
Üretim işlevleri, istemleri oluşturarak, hedef en-boy oranına yeniden boyutlandırarak, seçili açılar boyunca hattı çalıştırarak ve sonuçları indirilebilir bir zip dosyasında paketleyerek üretimi gerçekleştirir.
Adım 4.1: İstem Birleştirici ve Görsel Yeniden Boyutlandırma Yardımcıları
Modeli çağırmadan önce, iki durumsuz yardımcıyla girdileri normalize ederiz:
compose_prompt() işlevi: Bu işlev, kamera açısı, arka plan hazır ayarı, özel sahne ve stil notlarından tek bir talimat dizesi oluşturur. Özlü cümlecikler, Qwen’in talimat ayrıştırmasını dengede tutar ve herhangi bir kısmın aşırı ağırlık kazanmasını önler.
resize_image() işlevi: Kaynağı, kapsayacak şekilde ölçekleme stratejisiyle hedef en-boy oranına sığdırır; Lanczos yeniden örnekleme, yüksek kaliteli aşağı/yukarı ölçeklemede yardımcı olur ve merkez kırpma, ana konunun kadrajda kalmasını sağlar.
Birleştirilebilir istem: Bölümleri " | " ile birleştiririz; bu, cümlecikleri görsel olarak ayırt ederken Qwen-Edit noktalama işaretlerini yönetir ve son cümleye taraf olmadan tutarlı bir ayrıştırma üretir. Kullanıcı metninde boş parçaları önlemek için .strip() kullanırız.
Kapsayacak-ölçek matematiği: Bu, yeniden boyutlandırılmış görselin hedef tuvali her iki boyutta da tamamen kaplamasını garanti eder.
Lanczos yeniden örnekleme: Aşağı örneklemede ince ayrıntıları koruyan ve yukarı ölçeklemede kıvrımlaşmayı azaltan yüksek kaliteli bir filtredir.
Merkez kırpma: Yeniden boyutlandırmadan sonra, tipik kompozisyonu korumak ve beklenmedik kaymaların önüne geçmek için tam hedef tuvali ortadan kırparız.
Yardımcılar hazır olduğuna göre, şimdi çok açılı üretim döngüsünü çalıştırabilir ve sonuçları paketleyebiliriz.
Adım 4.2: Görselleri üretin
Sırada, girdileri doğrular, görseli seçilen en-boy oranına uyarlar, seçili açılar üzerinde döngüye girer ve hattı inference_mode içinde çalıştırırız. Son olarak, üretilen tüm görselleri içeren bir zip dosyası döndürürüz.
generate_images() işlevi, çok açılı üretimi ve dışa aktarmayı şu şekilde uygular:
Doğrula, normalleştir ve yapılandır: Yüklenen bir görsel ve seçilen açıları kontrol eder, ardından görseli seçilen en-boy oranına uydurur (yeniden boyutlandırma ve ortadan kırpma) ve set_pipeline_mode(use_lightning) ile HQ ve Hızlı mod arasında geçiş yapar.
Verimli çıkarım: Her açı için, açı makrosu, arka plan hazır ayarı, sahne ve stili içeren tek bir talimat dizesi oluşturur. Ardından Diffusers girdilerini hazırlar ve belleği korumak için torch.inference_mode() altında yürütür. Düşük VRAM’li GPU’larda (T4 gibi), açı başına torch.cuda.empty_cache() çağrıları parçalanmayı azaltmaya yardımcı olur.
Sonuçları UI geri bildirimiyle biriktir: Son olarak, her açı tamamlandığında Gradio ilerlemesini günceller ve tüm çıktıları aşağı akışta ziplemek üzere tek bir listede toplar.
create_zip(images) işlevi, kısa bir manifest.txt ile birlikte görüntüleri bellek içi (BytesIO) üzerinden kodlayarak kayıpsız dosyalar halinde bir zip dosyası yazar ve görsel yoksa None döndürür.
Üretim ve paketleme tamamlandığında, arayüz tek tıkla tüm açı paketini indirebileceğiniz çok açılı bir geçiş başlatabilir.
Adım 5: Gradio Arayüzü
Bu arayüz, kullanıcıların bir ürün görseli yüklemesine, açıları ve en-boy oranlarını seçmesine, bir arka plan hazır ayarı belirlemesine, stil notları girmesine ve hareket hâlindeyken birden çok açılı görseller üretmesine olanak tanır.
Yukarıdaki kod, tek bir üret eylemini çıkarıma bağlayan ve paylaşılabilir bir web arayüzü sunan etkileşimli bir Gradio uygulaması oluşturur; bunun için şunları kullanır:
Girdiler (sol sütun): Sol panel, modelin ihtiyaç duyduğu her şeyi toplar: ürün fotoğrafı yüklemek için gr.Image, kamera açıları için gr.CheckboxGroup, en-boy oranı ve arka plan hazır ayarları için iki gr.Dropdown ve görünümü ince ayarlamak için özel sahne ve stil notlarına yönelik iki gr.Textbox.
Çıktılar (sağ sütun): Bir gr.Gallery yöntemi, tüm üretilen açıları bir ızgarada göstererek kompozisyonları bir bakışta karşılaştırmanızı sağlar; gr.File bileşeni, hızlı indirme için PNG’lerin ZIP’ini sunar.
Gelişmiş ayarlar : Bir gr.Checkbox, T4 sınıfı GPU’larda hızlı önizlemeler için Hızlı Modu (Lightning LoRA) açıp kapatır; Tohum ve Adımlar, yeniden üretilebilirliği ve kalite/zaman dengesini ayarlar. Guidance ve True-CFG, düzenleme gücünü kimlik kararlılığına karşı yönlendirir; Images per Angle ise tek seferde her kamera makrosu için birden fazla varyant üretmenizi sağlar.
Arayüz kablolaması (eylem): Tek bir Generate düğmesi, tüm girdileri generate_images() işlevine (seçili adaptörlerle Qwen Edit’i çalıştırır) ve ardından create_zip() işlevine (çıktıları paketler) bağlar; arayüze hem galeriyi hem de ZIP’i geri döndürür.
Uygulama başlatma: Son olarak, demo.launch() yöntemi web uygulamasını ayağa kaldırır ve herkese açık bir paylaşım URL’si sağlar—Colab oturumları, hızlı demolar veya paydaşlara aracı kendilerinin denemesi için bağlantı göndermek adına idealdir.
Son olarak Generate’e tıklayın ve tam açılı paketin render edildiğini izleyin.
İşte bu modelle yaptığım deneylerin sonuçları. Önce, ayarlanan farklı parametrelere göre ürünlerin nasıl görüntülendiğini görebilirsiniz.
Bir sonraki videoda, arayüzle nasıl etkileşime girebildiğimi, çeşitli ayarları ve özgün görselimizden üretilen sonuçları görebilirsiniz.
Son Düşünceler
Artık tek bir fotoğrafı, Qwen-Image-Edit-2509 ve LoRA “sanal kamera” kontrollerini kullanarak çok açılı render’lara dönüştüren bir Product Shot Booster Gradio uygulamasına sahipsiniz. Uygulama GPU farkındadır (A100 için en uygun, ancak daha küçük GPU’lar slicing kullanır), tekrarlanabilirdir ve Hızlı önizlemeden HQ dışa aktarmaya uzanan bir iş akışını destekler.
Sırada şunları deneyebilirsiniz:
Canlıya alın: Kimlik doğrulama ve kotalar ekleyin; Amazon/Etsy/PDP görsel gereksinimleri için tek tıkla hazır dışa aktarmalar sunun.
Ölçekleyin: Bir /generate API’si açın ve toplu işleri (SKU’ların CSV/JSON’u) destekleyin; böylece ekipler geniş ölçekte açı paketleri render edebilsin.
Yapay zekâ destekli uygulamalar geliştirme konusunda daha fazla uygulamalı deneyim kazanmak isterseniz, Yapay Zekâ Uygulamaları Geliştirme beceri yolunu öneririm.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Tek başına satış yapanlar ve küçük markaların tam kapsamlı bir ürün fotoğraf çekimi için nadiren bütçesi olur. Bu rehberde, tek bir girdi görselini, Qwen-Image-Edit-2509 kullanarak e-ticarete hazır, çok açılı ürün render’larına (geniş, makro, ±45°, tepeden) dönüştüren ve tekrarlanabilir yapay zekâ ürün fotoğrafçılığı için LoRA tabanlı sanal kamera kontrolleri sunan bir Gradio uygulaması inşa edip çalıştıracağız.
Arka planda şunları kullanıyoruz:
Qwen/Qwen-Image-Edit-2509(Apache-2.0)dx8152/Qwen-Edit-2509-Multiple-angleslightx2v/Qwen-Image-LightningBu eğitimde şunları öğreneceksiniz:
Görüntü verisinin derin öğrenmede nasıl işlendiği hakkında daha fazla bilgi edinmek isterseniz Python ile Görüntü İşleme beceri yoluna göz atın.
Neden Qwen Image Edit’i Multiple Angles LoRA ile Kullanmalı?
Qwen-Image-Edit-2509, Qwen’in görüntü düzenleme modelinin tutarlılığı ve çoklu görüntü düzenlemesi geliştirilmiş en yeni sürümüdür. Multiple-Angles LoRA, güvenilir “sanal kamera” kontrolleri ekler; böylece şunları söyleyebilirsiniz:
Bu komutlar, ürünü yeni bir ürüne hayal etmeden tutarlı biçimde yeniden kadrajlar.
Qwen Image Edit Adım Adım Eğitim: Ürün Çekimi Güçlendirici Oluşturma
Bu rehberde, tek bir ürün görselini isteğe bağlı yaşam tarzı hazır ayarları ve hızlı önizleme modu ile stüdyo hazır bir açı setine (geniş, yakın plan, 45° sol/sağ ve tepeden gibi) dönüştüren bir uygulama kuracağız. Uygulama, Gradio arayüzüne sarılı
Qwen/Qwen-Image-Edit-2509modelini ve Multiple-Angles LoRA’yı kullanır.Ortam kurulumundan model yüklemeye, üretim yardımcılarından web arayüzüne kadar ilerleyeceğiz.
Adım 1: Önkoşullar
Önce tüm çalışma zamanı bağımlılıklarını kurun. CUDA tekerlekleriyle PyTorch, Hugging Face araçları, Diffusers kütüphanesi, arayüz için Gradio ve görsel işlemede Pillow/OpenCV kullanıyoruz.
Her önkoşulun yaptığı iş şudur:
QwenImageEditPlusPipeline’ı sağlar.Ortam hazır olduğunda, Hugging Face’e kimlik doğrulaması yapabilir (isteğe bağlı) ve modelleri yükleyebiliriz.
Adım 2: Hugging Face kimlik doğrulaması
Bazı modeller veya adaptörler HuggingFace üzerinden kimlik doğrulaması gerektirebilir. Bu adım, oturum için bir kez giriş yapar.
Önce HuggingFace hesabınıza giriş yapın ve hesap ayarlarınızda Erişim Jetonlarını bulun. Yeni jeton oluştur’a tıklayın ve Okuma türünde yeni bir jeton üretin. Gerekli izinleri seçin ve yeni jetonu oluşturun.
Canlı/Colab ortamlarında jetonları kod içine gömmeyin; bunun yerine ortam değişkenlerini veya Colab “Gizli Anahtarlar”ını kullanın.
Adım 3: Modeli yükleyin ve hattı kurun
Bu bölümde, Qwen-Image-Edit hattını kuruyor, açı LoRA’sını yüklüyor ve GPU farkındalıklı ayarlarla bir Hızlı geçişi ekliyoruz. Bu kodun yüksek RAM’li bir A100 GPU’da verimli çalıştığını unutmayın.
Adım 3.1: İçe aktarmalar ve GPU yapılandırması
Şimdi temel kütüphaneleri içe aktaracağız ve hassasiyet, attention slicing ve VAE slicing’i kararlılık için otomatik ayarlamak üzere GPU’yu algılayacağız.
Yukarıdaki kod bloklarının ana bileşenleri şunlardır:
get_gpu_configişlevi): Mevcut hızlandırıcıyı algılarız ve cihazı (cpu/cuda), dtype’ı (GPU’da bfloat16 gibi) ve bellek davranışlarını seçmek için kullanılan küçük bir yapılandırma sözlüğü döndürürüz:Qwen-Image-Edit-2509’u çekirdekteki düzenleyici olarak yükler, kamera kontrolü için Multiple-angles LoRA’yı ekler ve Hızlı Mod’a geçtiğinizde isteğe bağlı olarak Lightning LoRA’yı harmanlarız.HF_BASE_MODEL = "Qwen/Qwen-Image-Edit-2509"ana görüntü düzenleme omurgasıdır.LORA_ANGLES = "dx8152/Qwen-Edit-2509-Multiple-angles"“sanal kamera” kontrolleri ekler.LORA_LIGHTNING = "lightx2v/Qwen-Image-Lightning"hızlı önizlemeler için isteğe bağlı bir hız adaptörüdür.Not: HQ Modu için yalnızca açı adaptörü etkin kalır.
ANGLE_MACROS, “Wide-angle” veya “Top-down” gibi etiketleri, açı LoRA’sının güvenle anladığı eşdeğer Çince komutlara eşler. Bu komutlar, kimliği değiştirmeden sanal kamerayı (hareket/döndür/zoom) tutarlı biçimde hareket ettirir.BACKGROUND_PRESETS, nihai isteme birleştirdiğimiz “mermer yüzey”, “yumuşak gri stüdyo” gibi kısa İngilizce parçacıklardır. Bunlar açı makrolarından bağımsızdır ve sahnenin kontrolünden sorumludur.ASPECT_RATIOS): Bunlar, tuval (1:1, 4:3, 16:9 vb.) üretmemize ve çıkışların üretim sonrası kırpmaya ihtiyaç duymaması için girdiyi çıkarıma geçmeden önce yeniden boyutlandırmamıza veya ortadan kırpmamıza olanak tanır.Artık GPU ve adaptörler hazır. Şimdi Diffusers hattını başlatalım ve LoRA’ları ekleyelim.
Adım 3.2: Hat
Sırada, temel Qwen Edit hattını yüklüyor, GPU’ya göre bellek iyileştirmelerini etkinleştiriyor ve Multiple-Angles LoRA’yı üst üste ekliyoruz. Ayrıca hızlı önizlemeler için isteğe bağlı olarak Lightning LoRA’yı ekleyen bir mod anahtarı uyguluyoruz.
Yukarıdaki kod, Ürün Çekimi Güçlendirici uygulaması için hat kurulum katmanıdır ve şu işlevleri yerine getirir:
QwenImageEditPlusPipeline’ı temel modelden (Qwen/Qwen-Image-Edit-2509) oluşturur, algılanan cihaza (CPU/GPU) taşır ve donanımınıza göre tensör hassasiyetini (torch_dtype) ayarlar.set_pipeline_mode()yardımcı işlevi vecurrent_modebayrağı, gereksiz Lightning yeniden yüklemelerini önleyerek HQ ile Hızlı durumlarını yönetir ve adaptörler arasında geçiş yapmanızı sağlar.Hat artık hazır. Şimdi üretim işlevlerini ve Gradio arayüzünü bağlayalım.
Adım 4: Üretim işlevleri
Üretim işlevleri, istemleri oluşturarak, hedef en-boy oranına yeniden boyutlandırarak, seçili açılar boyunca hattı çalıştırarak ve sonuçları indirilebilir bir zip dosyasında paketleyerek üretimi gerçekleştirir.
Adım 4.1: İstem Birleştirici ve Görsel Yeniden Boyutlandırma Yardımcıları
Modeli çağırmadan önce, iki durumsuz yardımcıyla girdileri normalize ederiz:
compose_prompt()işlevi: Bu işlev, kamera açısı, arka plan hazır ayarı, özel sahne ve stil notlarından tek bir talimat dizesi oluşturur. Özlü cümlecikler, Qwen’in talimat ayrıştırmasını dengede tutar ve herhangi bir kısmın aşırı ağırlık kazanmasını önler.resize_image()işlevi: Kaynağı, kapsayacak şekilde ölçekleme stratejisiyle hedef en-boy oranına sığdırır; Lanczos yeniden örnekleme, yüksek kaliteli aşağı/yukarı ölçeklemede yardımcı olur ve merkez kırpma, ana konunun kadrajda kalmasını sağlar.Yukarıdaki iki işlev şu görevleri yerine getirir:
.strip()kullanırız.Yardımcılar hazır olduğuna göre, şimdi çok açılı üretim döngüsünü çalıştırabilir ve sonuçları paketleyebiliriz.
Adım 4.2: Görselleri üretin
Sırada, girdileri doğrular, görseli seçilen en-boy oranına uyarlar, seçili açılar üzerinde döngüye girer ve hattı
inference_modeiçinde çalıştırırız. Son olarak, üretilen tüm görselleri içeren bir zip dosyası döndürürüz.generate_images()işlevi, çok açılı üretimi ve dışa aktarmayı şu şekilde uygular:set_pipeline_mode(use_lightning)ile HQ ve Hızlı mod arasında geçiş yapar.torch.inference_mode()altında yürütür. Düşük VRAM’li GPU’larda (T4 gibi), açı başınatorch.cuda.empty_cache()çağrıları parçalanmayı azaltmaya yardımcı olur.create_zip(images)işlevi, kısa birmanifest.txtile birlikte görüntüleri bellek içi (BytesIO) üzerinden kodlayarak kayıpsız dosyalar halinde bir zip dosyası yazar ve görsel yoksa None döndürür.Üretim ve paketleme tamamlandığında, arayüz tek tıkla tüm açı paketini indirebileceğiniz çok açılı bir geçiş başlatabilir.
Adım 5: Gradio Arayüzü
Bu arayüz, kullanıcıların bir ürün görseli yüklemesine, açıları ve en-boy oranlarını seçmesine, bir arka plan hazır ayarı belirlemesine, stil notları girmesine ve hareket hâlindeyken birden çok açılı görseller üretmesine olanak tanır.
Yukarıdaki kod, tek bir üret eylemini çıkarıma bağlayan ve paylaşılabilir bir web arayüzü sunan etkileşimli bir Gradio uygulaması oluşturur; bunun için şunları kullanır:
gr.Image, kamera açıları içingr.CheckboxGroup, en-boy oranı ve arka plan hazır ayarları için ikigr.Dropdownve görünümü ince ayarlamak için özel sahne ve stil notlarına yönelik ikigr.Textbox.gr.Galleryyöntemi, tüm üretilen açıları bir ızgarada göstererek kompozisyonları bir bakışta karşılaştırmanızı sağlar;gr.Filebileşeni, hızlı indirme için PNG’lerin ZIP’ini sunar.gr.Checkbox, T4 sınıfı GPU’larda hızlı önizlemeler için Hızlı Modu (Lightning LoRA) açıp kapatır; Tohum ve Adımlar, yeniden üretilebilirliği ve kalite/zaman dengesini ayarlar.GuidanceveTrue-CFG, düzenleme gücünü kimlik kararlılığına karşı yönlendirir;Images per Angleise tek seferde her kamera makrosu için birden fazla varyant üretmenizi sağlar.generate_images()işlevine (seçili adaptörlerle Qwen Edit’i çalıştırır) ve ardındancreate_zip()işlevine (çıktıları paketler) bağlar; arayüze hem galeriyi hem de ZIP’i geri döndürür.demo.launch()yöntemi web uygulamasını ayağa kaldırır ve herkese açık bir paylaşım URL’si sağlar—Colab oturumları, hızlı demolar veya paydaşlara aracı kendilerinin denemesi için bağlantı göndermek adına idealdir.Son olarak Generate’e tıklayın ve tam açılı paketin render edildiğini izleyin.
İşte bu modelle yaptığım deneylerin sonuçları. Önce, ayarlanan farklı parametrelere göre ürünlerin nasıl görüntülendiğini görebilirsiniz.