Spaces:
Sleeping
Sleeping
| 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() | |
| 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) | |