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()