img / app.py
kooldark's picture
Update app.py
bb941e2 verified
import os
import requests
import gradio as gr
from dotenv import load_dotenv # Chỉ dùng khi phát triển cục bộ
import io
from PIL import Image
from mtranslate import translate # Import thư viện mtranslate
import random # Thư viện để tạo yếu tố ngẫu nhiên
# Tải biến môi trường từ file .env nếu có (chỉ dùng khi phát triển cục bộ)
load_dotenv()
# Lấy API Key và URL từ biến môi trường
api_key = os.getenv("HF_API_KEY")
image_api_url = os.getenv("IMAGE_API_URL")
headers = {"Authorization": f"Bearer {api_key}"}
# Hàm gọi API Hugging Face để tạo hình ảnh
def query(payload):
response = requests.post(image_api_url, headers=headers, json=payload)
return response.content
# Hàm dịch tiếng Việt sang tiếng Anh bằng mtranslate
def translate_to_english(text):
return translate(text, "en", "vi") # Dịch từ tiếng Việt sang tiếng Anh
# Hàm xử lý để gọi API và trả về hình ảnh
def generate_image(prompt):
# Dịch prompt từ tiếng Việt sang tiếng Anh
prompt_en = translate_to_english(prompt)
# Thêm yếu tố ngẫu nhiên vào prompt để tạo hình ảnh khác nhau
random_factor = random.randint(1, 1000)
prompt_with_randomness = f"{prompt_en}. Seed: {random_factor}"
# Gửi prompt đã dịch vào API tạo hình ảnh
image_bytes = query({"inputs": prompt_with_randomness})
# Mở hình ảnh từ byte dữ liệu
image = Image.open(io.BytesIO(image_bytes))
return image
# Tạo giao diện Gradio
iface = gr.Interface(
fn=generate_image,
inputs="text",
outputs="image",
title="Image Generator - Trần Như Tuấn",
description="Nhập mô tả của bạn để tạo hình ảnh"
)
# Khởi chạy ứng dụng
iface.launch()