File size: 1,419 Bytes
3bd8c96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()