Spaces:
Sleeping
Sleeping
File size: 1,933 Bytes
4fe4c17 fa2f7ce 4fe4c17 4ea1b97 fa2f7ce 4ea1b97 31252ab 4ea1b97 e8ef30d 6fe4884 4fe4c17 31252ab a5ef918 4fe4c17 e8ef30d 6bbeb1c fa2f7ce 6bbeb1c 4ea1b97 e8ef30d 6bbeb1c 4ea1b97 ac0361e 4ea1b97 8f91df0 e8ef30d 23a32f1 e8ef30d 6bbeb1c fa2f7ce e8ef30d 4fe4c17 4ea1b97 e8ef30d 4fe4c17 4ea1b97 e8ef30d 4ea1b97 8f91df0 e8ef30d a5ef918 4ea1b97 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import gradio as gr
import requests
import random
from io import BytesIO
from PIL import Image
import os
# Constants
BASE_URL = "https://image.pollinations.ai/prompt/"
WATERMARK_PATH = "CodeHubb.png"
# Load and prepare watermark
watermark = Image.open(WATERMARK_PATH).convert("RGBA")
watermark = watermark.resize((300, 100))
watermark.putalpha(128) # 50% opacity
def generate_image(prompt):
if not prompt:
raise gr.Error("Please enter a prompt.")
seed = random.randint(1, 999999)
url = f"{BASE_URL}{prompt}?width=2048&height=2048&seed={seed}&nologo=true&model=flux"
try:
response = requests.get(url, stream=True)
response.raise_for_status()
img = Image.open(BytesIO(response.content)).convert("RGBA")
# Paste watermark in top-left
img.paste(watermark, (20, 20), watermark)
# Ensure /mnt/data directory
os.makedirs("/mnt/data", exist_ok=True)
# Save as JPG
rgb_img = img.convert("RGB")
download_path = "/mnt/data/generated_image.jpg"
rgb_img.save(download_path, "JPEG", quality=95)
return img, download_path
except Exception as e:
raise gr.Error(f"❌ Unexpected error: {str(e)}")
# Interface
with gr.Blocks(css=".gr-button-lg {width: 100% !important;}") as demo:
gr.Markdown("## 🚀 CodeHubb Image Generator\nYour Creative Partner – **Design. Develop. Dominate**")
prompt = gr.Textbox(label="Enter Prompt", placeholder="e.g. cinematic mountain road", lines=2)
generate_btn = gr.Button("🎨 Generate Image", elem_classes="gr-button-lg")
image_output = gr.Image(label="Generated Image", type="pil")
download_button = gr.File(label="⬇️ Download JPG", elem_classes="gr-button-lg")
generate_btn.click(fn=generate_image, inputs=[prompt], outputs=[image_output, download_button])
# ✅ Fix: Allow /mnt/data for download
demo.launch(allowed_paths=["/mnt/data"])
|