AMfeta99's picture
Update app.py
92061e6 verified
raw
history blame
3.16 kB
from transformers import load_tool, ReactCodeAgent, HfApiEngine
from PIL import Image
import torch
import numpy as np
import tempfile
import os
import uuid
import gradio as gr
from Methods import *
# Import text-to-image tool from Hub
# m-ric/text-to-image model generates images based on textual descriptions.
image_generation_tool = load_tool("m-ric/text-to-image", cache=False) #cache=False ensures it fetches the latest tool updates directly from the Hub.
# Import search tool from LangChain
#This tool allows the agent to search for and retrieve information from the web.
from transformers.agents.search import DuckDuckGoSearchTool
search_tool = DuckDuckGoSearchTool()
# Qwen2.5-72B-Instruct is a specific, a LLM fine-tuned for instruction-following tasks.
llm_engine = HfApiEngine("Qwen/Qwen2.5-72B-Instruct")
# Initialize the agent with both tools
agent = ReactCodeAgent(tools=[image_generation_tool, search_tool], llm_engine=llm_engine)
# Gradio interface
def create_gradio_interface():
with gr.Blocks() as demo:
gr.Markdown("# Object Evolution Generator")
# Add a section for instructions
gr.Markdown("""
## Welcome to the Object Evolution Generator!
This app allows you to generate visualizations of how an object, like a bicycle or a car, may have evolved over time.
It generates images of the object in the past, present, and future based on your input.
### Default Example: Evolution of a Car
Below, you can see a precomputed example of a "car" evolution. Enter another object to generate its evolution.
""")
# Paths to the precomputed files
default_images = [
("car_past.png", "Car - Past"),
("car_present.png", "Car - Present"),
("car_future.png", "Car - Future")
]
default_gif_path = "car_evolution.gif"
with gr.Row():
with gr.Column():
# Textbox for user to input an object name
object_name_input = gr.Textbox(label="Enter an object name (e.g., bicycle, phone)",
placeholder="Enter an object name",
lines=1)
# Button to trigger the generation of images and GIF
generate_button = gr.Button("Generate Evolution")
# Gradio Gallery component to display the images
image_gallery = gr.Gallery(label="Generated Images", show_label=True, columns=3, rows=1,
value=default_images)
# Output for the generated GIF
gif_output = gr.Image(label="Generated GIF", show_label=True, value=default_gif_path)
# Set the action when the button is clicked
generate_button.click(fn=generate_object_history, inputs=[object_name_input], outputs=[image_gallery, gif_output])
return demo
# Launch the Gradio app
demo = create_gradio_interface()
# To make it permanent and hosted, we can use Gradio's 'share' argument or host it on a server.
demo.launch(share=True)