TALHA51 commited on
Commit
95772e1
·
verified ·
1 Parent(s): 5b3e5f9

Delete Varlıklar

Browse files

işletim sistemini içe aktar
cv2'yi içe aktar
Gradio'yu gr olarak içe aktar
numpy'yi np olarak içe aktar
rastgele içe aktar
base64'ü içe aktar
ithalat talepleri
json'u içe aktar
ithalat zamanı


def tryon(kişi_img, giysi_img, tohum, rastgele_tohum):
post_start_time = time.time()
Eğer person_img None ise veya garment_img None ise:
gr.Warning("Boş resim")
Hiçbiri, Hiçbiri, "Boş resim" döndür
eğer randomize_seed:
tohum = rastgele.randint(0, MAKS_TOHUM)
kodlanmış_kişi_resimleri = cv2.imencode('.jpg', cv2.cvtColor(kişi_resimleri, cv2.COLOR_RGB2BGR))[1].tobytes()
kodlanmış_kişi_resimleri = base64.b64encode(kodlanmış_kişi_resimleri).decode('utf-8')
kodlanmış_giysi_resimleri = cv2.imencode('.jpg', cv2.cvtColor(giysi_resimleri, cv2.COLOR_RGB2BGR))[1].tobytes()
kodlanmış_giysi_resimleri = base64.b64encode(kodlanmış_giysi_resimleri).decode('utf-8')

url = "http://" + os.environ['tryon_url'] + "Gönder"
belirteç = os.environ['belirteç']
çerez = os.environ['Çerez']
yönlendiren = os.environ['yönlendiren']
başlıklar = {'İçerik Türü': 'uygulama/json', 'token': belirteç, 'Çerez': çerez, 'referan': referan}
veri = {
"clothImage": kodlanmış_giysi_resimleri,
"insanGörüntüsü": kodlanmış_kişi_görüntüsü,
"tohum": tohum
}
denemek:
yanıt = istekler.gönderi(url, başlıklar=başlıklar, veri=json.dumps(veri), zaman aşımı=50)
# print("yanıt kodunu gönder", yanıt.durum_kodu)
eğer yanıt.durum_kodu == 200 ise:
sonuç = response.json()['sonuç']
durum = sonuç['durum']
eğer durum == "başarılı" ise:
uuid = sonuç['sonuç']
# print(uuid)
istisna hariç hata olarak:
print(f"Post İstisna Hatası: {err}")
raise gr.Error("Çok fazla kullanıcı var, lütfen daha sonra tekrar deneyin")
post_end_time = time.time()
print(f"kullanılan gönderi zamanı: {gönderi_bitiş_zamanı-gönderi_başlangıç_zamanı}")

get_start_time =time.time()
zaman.uyku(9)
Maksimum_Tekrar_Deneme = 12
result_img = Hiçbiri
bilgi = ""
hata_günlüğü = ""
i aralığındaki (Maksimum_Yeniden_Deneme) için:
denemek:
url = "http://" + os.environ['tryon_url'] + "Sorgu?taskId=" + uuid
yanıt = istekler.get(url, başlıklar=başlıklar, zaman aşımı=20)
# print("yanıt kodunu al", yanıt.durum_kodu)
eğer yanıt.durum_kodu == 200 ise:
sonuç = response.json()['sonuç']
durum = sonuç['durum']
eğer durum == "başarılı" ise:
sonuç = base64.b64decode(sonuç['sonuç'])
result_np = np.frombuffer(sonuç, np.uint8)
sonuç_img = cv2.imdecode(sonuç_np, cv2.IMREAD_UNCHANGED)
sonuç_img = cv2.cvtColor(sonuç_img, cv2.COLOR_RGB2BGR)
info = "Başarılı"
kırmak
elif status == "hata":
err_log = f"Durum Hata"
info = "Hata"
kırmak
başka:
# print(yanıt.metin)
err_log = "URL hatası, lütfen yöneticiyle iletişime geçin"
info = "URL hatası, lütfen yöneticiyle iletişime geçin"
kırmak
istekler.istisnalar.okumazamanaşımı hariç:
err_log = "Http Zaman Aşımı"
info = "Http Zaman Aşımı, lütfen daha sonra tekrar deneyin"
istisna hariç hata olarak:
err_log = f"İstisna Hatasını Al: {err}"
zaman.uyku(1)
bitiş_zamanını_al = zaman.zaman()
print(f"kullanılan zamanı al: {get_end_time-get_start_time}")
print(f"kullanılan tüm zaman: {get_end_time-get_start_time+post_end_time-post_start_time}")
eğer bilgi == "":
err_log = f"{Max_Retry} denemesinden sonra görüntü yok"
info = "Çok fazla kullanıcı var, lütfen daha sonra tekrar deneyin"
if info != "Başarılı":
print(f"Hata Günlüğü: {err_log}")
gr.Warning("Çok fazla kullanıcı var, lütfen daha sonra tekrar deneyin")

result_img, seed, info'yu döndür

def start_tryon(kişi_img, giysi_img, tohum, rastgele_tohum):
başlangıç_zamanı = zaman.zaman()
Eğer person_img None ise veya garment_img None ise:
Hiçbiri, Hiçbiri, "Boş resim" döndür
eğer randomize_seed:
tohum = rastgele.randint(0, MAKS_TOHUM)
kodlanmış_kişi_resimleri = cv2.imencode('.jpg', cv2.cvtColor(kişi_resimleri, cv2.COLOR_RGB2BGR))[1].tobytes()
kodlanmış_kişi_resimleri = base64.b64encode(kodlanmış_kişi_resimleri).decode('utf-8')
kodlanmış_giysi_resimleri = cv2.imencode('.jpg', cv2.cvtColor(giysi_resimleri, cv2.COLOR_RGB2BGR))[1].tobytes()
kodlanmış_giysi_resimleri = base64.b64encode(kodlanmış_giysi_resimleri).decode('utf-8')

url = "http://" + os.environ['tryon_url']
belirteç = os.environ['belirteç']
çerez = os.environ['Çerez']
yönlendiren = os.environ['yönlendiren']

başlıklar = {'İçerik Türü': 'uygulama/json', 'token': belirteç, 'Çerez': çerez, 'referan': referan}
veri = {
"clothImage": kodlanmış_giysi_resimleri,
"insanGörüntüsü": kodlanmış_kişi_görüntüsü,
"tohum": tohum
}

result_img = Hiçbiri
denemek:
oturum = istekler.Oturum()
yanıt = oturum.gönderi(url, başlıklar=başlıklar, veri=json.dumps(veri), zaman aşımı=60)
print("yanıt kodu", yanıt.durum_kodu)
eğer yanıt.durum_kodu == 200 ise:
sonuç = response.json()['sonuç']
durum = sonuç['durum']
eğer durum == "başarılı" ise:
sonuç = base64.b64decode(sonuç['sonuç'])
result_np = np.frombuffer(sonuç, np.uint8)
sonuç_img = cv2.imdecode(sonuç_np, cv2.IMREAD_UNCHANGED)
sonuç_img = cv2.cvtColor(sonuç_img, cv2.COLOR_RGB2BGR)
info = "Başarılı"
başka:
info = "Daha sonra tekrar deneyin"
başka:
print(yanıt.metin)
info = "URL hatası, lütfen yöneticiyle iletişime geçin"
istekler.istisnalar.okumazamanaşımı hariç:
print("zaman aşımı")
info = "Çok fazla kullanıcı var, lütfen daha sonra tekrar deneyin"
raise gr.Error("Çok fazla kullanıcı var, lütfen daha sonra tekrar deneyin")
istisna hariç hata olarak:
print(f"其他错误: {hata}")
info = "Hata, lütfen yöneticiyle iletişime geçin"
bitiş_zamanı = zaman.zaman()
print(f"kullanılan zaman: {bitiş_zamanı-başlangıç_zamanı}")

result_img, seed, info'yu döndür

MAKS_TOHUM = 999999

example_path = os.path.join(os.path.dirname(__file__), 'varlıklar')

garm_list = os.listdir(os.path.join(örnek_yol,"cloth"))
garm_list_path = [os.path.join(example_path,"kumaş",garm) garm_list'teki garm için]

insan_listesi = os.listdir(os.path.join(örnek_yol,"insan"))
human_list_path = [os.path.join(example_path,"human",human) insan_listesindeki insan için]

css="""
#sol-süt {
marj: 0 otomatik;
maksimum genişlik: 430 piksel;
}
#col-mid {
marj: 0 otomatik;
maksimum genişlik: 430 piksel;
}
#col-right {
marj: 0 otomatik;
maksimum genişlik: 430 piksel;
}
#col-showcase {
marj: 0 otomatik;
maksimum genişlik: 1100 piksel;
}
#düğme {
renk: mavi;
}
"""

def load_description(fp):
fp, 'r', kodlama='utf-8') ile açık:
içerik = f.read()
içeriği döndür

def change_imgs(resim1, resim2):
resim1, resim2'yi döndür

gr.Blocks(css=css) ile Tryon olarak:
gr.HTML(load_description("varlıklar/başlık.md"))
gr.Row() ile:
gr.Column(elem_id = "col-left") ile:
gr.HTML("""
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 20px;">
<div>
Adım 1. Bir kişi resmi yükleyin ⬇ï¸
</div>
</div>
""")
gr.Column(elem_id = "col-mid") ile:
gr.HTML("""
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 20px;">
<div>
Adım 2. Bir giysi resmi yükleyin ⬇ï¸
</div>
</div>
""")
gr.Column(elem_id = "col-right") ile:
gr.HTML("""
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 20px;">
<div>
Adım 3. Deneme sonuçlarını almak için "Çalıştır"a basın
</div>
</div>
""")
gr.Row() ile:
gr.Column(elem_id = "col-left") ile:
imgs = gr.Image(label="Kişi resmi", sources='upload', type="numpy")
# kategori = gr.Dropdown(etiket="Giysi kategorisi", seçimler=['üst_vücut', 'alt_vücut', 'elbiseler'], değer="üst_vücut")
örnek = gr.Örnekler(
girdiler=resimler,
sayfa_başına_örnekler=12,
örnekler=insan_listesi_yolu
)
gr.Column(elem_id = "col-mid") ile:
garm_img = gr.Image(label="Giysi resmi", sources='upload', type="numpy")
örnek = gr.Örnekler(
girdiler=garm_img,
sayfa_başına_örnekler=12,
örnekler=garm_list_path
)
gr.Column(elem_id = "col-right") ile:
image_out = gr.Image(label="Sonuç", show_share_button=False)
gr.Row() ile:
tohum = gr.Slider(
etiket="Tohum",
minimum=0,
maksimum=MAKS_TOHUM,
adım=1,
değer=0,
)
randomize_seed = gr.Checkbox(label="Rastgele tohum", value=True)
gr.Row() ile:

Files changed (1) hide show
  1. Varlıklar +0 -0
Varlıklar DELETED
File without changes