Spaces:
Runtime error
Runtime error
| import spaces | |
| import subprocess | |
| import shutil | |
| import gradio as gr | |
| from PIL import Image | |
| from huggingface_hub import snapshot_download | |
| import json | |
| import os | |
| # Specify the repository ID | |
| repo_id = "GAIR/Anole-7b-v0.1" | |
| if not os.path.exists("./Anole-7b-v0.1"): | |
| os.system("git lfs install") | |
| os.system("git clone https://huggingface.co/GAIR/Anole-7b-v0.1") | |
| subprocess.run(["/bin/bash", "install.sh"], capture_output=True, text=True) | |
| result = subprocess.run(["/bin/bash", "install.sh"], capture_output=True, text=True) | |
| def text_to_image(instruction): | |
| result = subprocess.run(["python", "text2image.py", "-i", instruction, "-b", "1"], capture_output=True, text=True) | |
| if result.returncode == 0: | |
| return gr.update(value="Image Generated. Check the display below.", visible=True), "outputs/text2image/1.png" | |
| else: | |
| return "Error: " + result.stderr, None | |
| def text_to_interleaved(instruction): | |
| result = subprocess.run(["python", "interleaved_generation.py", "-i", instruction], capture_output=True, text=True) | |
| if result.returncode == 0: | |
| outputs = [None for i in range(7)] | |
| box_index = 0 | |
| # Read the segments.jsonl file | |
| with open('./segments.jsonl', 'r') as file: | |
| for line in file: | |
| line_dict = json.loads(line.strip()) | |
| if line_dict['type'] == 'text': | |
| if box_index % 2 != 0: | |
| box_index += 1 | |
| outputs[box_index] = line_dict['content'] | |
| elif line_dict['type'] == 'image': | |
| if box_index % 2 == 0: | |
| box_index += 1 | |
| outputs[box_index] = Image.open(line_dict['content']) | |
| box_index += 1 | |
| return outputs[0], outputs[1], outputs[2], outputs[3], outputs[4], outputs[5], outputs[6] | |
| else: | |
| return ("Error: " + result.stderr, ) * 7 | |
| # Use Blocks to organize the interfaces side by side | |
| with gr.Blocks() as demo: | |
| # Create a row to place columns side by side | |
| with gr.Row(): | |
| # First column for Text-to-Image Interface | |
| with gr.Column(): | |
| gr.Interface( | |
| fn=text_to_image, # Function to generate cat images | |
| inputs=gr.Textbox(label="Enter Instruction for Image Generation"), # Input textbox for user instructions | |
| outputs=[gr.Text(label="Status"), gr.Image(label="Generated Image")], # Outputs: status message and generated image | |
| title="Anole: Text-to-Image", # Title of the interface | |
| description="Generate images based on text instructions. Check https://github.com/GAIR-NLP/anole for more information. Model can be downloaded at: https://huggingface.co/GAIR/Anole-7b-v0.1." | |
| ) | |
| # Second column for Text-to-Interleaved Image-Text Interface | |
| with gr.Column(): | |
| gr.Interface( | |
| fn=text_to_interleaved, | |
| inputs=gr.Textbox(label="Enter Instruction for Interleaved Content"), | |
| outputs=[gr.Text(label="Text Output 1"), gr.Image(label="Image Output 1"), gr.Text(label="Text Output 2"), gr.Image(label="Image Output 2"), gr.Text(label="Text Output 3"), gr.Image(label="Image Output 3"), gr.Text(label="Text Output 4")], | |
| title="Anole: Text-to-Interleaved", # Title of the interface | |
| description="Generate interleaved text and images based on text instructions. Check https://github.com/GAIR-NLP/anole for more information. Model can be downloaded at: https://huggingface.co/GAIR/Anole-7b-v0.1." | |
| ) | |
| # Launch the entire Blocks interface | |
| demo.launch() |