KarthikAI's picture
Update app.py
e3abf52 verified
raw
history blame
1.89 kB
import os
# cache_dir = os.path.expanduser('~/.cache/hf')
# os.environ['TRANSFORMERS_CACHE'] = cache_dir
# os.environ['HF_HOME'] = cache_dir
# os.makedirs(cache_dir, exist_ok=True)
# cache_dir = os.environ.get("CACHE_DIR", "/workspace/.cache")
# os.makedirs(cache_dir, exist_ok=True)
from fastapi import FastAPI, UploadFile, File, Form
from fastapi.responses import StreamingResponse
from utils import generate_sticker
from io import BytesIO
from PIL import Image
app = FastAPI()
@app.post("/generate")
async def generate(image: UploadFile = File(...), style: str = Form("chibi")):
# Read image file as PIL
image_pil = Image.open(BytesIO(await image.read()))
# Generate sticker
result_img = generate_sticker(image_pil, style)
# Save output image to a buffer
buf = BytesIO()
result_img.save(buf, format="PNG")
buf.seek(0)
return StreamingResponse(buf, media_type="image/png")
# If you want to run directly: uvicorn app:app --host 0.0.0.0 --port 8000
# import gradio as gr
# from utils import generate_sticker
# def predict(image, prompt):
# result_img = generate_sticker(image, prompt)
# return result_img # Should be PIL Image or np.array or filepath
# with gr.Blocks() as demo:
# gr.Markdown("# πŸ¦„ AI Sticker Generator (Stable Diffusion + IP-Adapter)")
# with gr.Row():
# image_input = gr.Image(type="pil", label="Upload your photo")
# prompt_input = gr.Textbox(
# label="Prompt (style or mood for emoji)",
# value="cartoon emoji, white outline, clean background",
# )
# output_image = gr.Image(label="Sticker Output")
# run_btn = gr.Button("Generate Sticker")
# run_btn.click(
# predict,
# inputs=[image_input, prompt_input],
# outputs=output_image
# )
# if __name__ == "__main__":
# demo.launch(server_name="0.0.0.0", share=True)