Spaces:
Running
Running
| from transformers import pipeline | |
| import requests | |
| import io | |
| from PIL import Image | |
| import gradio as gr | |
| import tempfile | |
| import os | |
| HF = os.getenv("HF_SECRET") | |
| recipe_generator = pipeline("text2text-generation", model="flax-community/t5-recipe-generation") | |
| API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-xl-base-1.0" | |
| headers = {'Authorization': f'Bearer {HF}'} | |
| def query(payload): | |
| response = requests.post(API_URL, headers=headers, json=payload) | |
| return response.content | |
| def generate(input): | |
| inputs = [f"items: {item}" for item in [input]] | |
| generated_recipes = recipe_generator(inputs, max_length=512, min_length=64, no_repeat_ngram_size=3, do_sample=True, top_k=60, top_p=0.95) | |
| recipe_text = generated_recipes[0]['generated_text'] | |
| #make recipe better into json? | |
| image_bytes = query({ | |
| "inputs": str(recipe_text), | |
| }) | |
| image = Image.open(io.BytesIO(image_bytes)) | |
| temp_file = tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) | |
| image.save(temp_file, format="JPEG") | |
| temp_file.close() | |
| return recipe_text, temp_file.name | |
| demo = gr.Interface( | |
| fn=generate, # Function to process input | |
| inputs=gr.Textbox(label="Enter ingredients separated by commas"), # Text input on the left | |
| outputs=[gr.Textbox(label="Recipe Display"), gr.Image(label="Recipe Image")] | |
| ) | |
| demo.launch() |