ImageGenerator / app.py
shukdevdatta123's picture
Update app.py
887edf3 verified
import gradio as gr
import base64
import io
from PIL import Image
from together import Together
def generate_image(api_key, prompt, width, height, steps):
try:
# Initialize the Together AI client with the provided API key
client = Together(api_key=api_key)
# Call the Together API to generate an image
response = client.images.generate(
prompt=prompt,
model="black-forest-labs/FLUX.1-schnell-Free",
width=width,
height=height,
steps=steps,
n=1,
response_format="b64_json"
)
# Get the base64 encoded image
image_b64 = response.data[0].b64_json
# Convert base64 to image
image_data = base64.b64decode(image_b64)
image = Image.open(io.BytesIO(image_data))
return image
except Exception as e:
return f"Error generating image: {str(e)}"
# Create the Gradio interface
with gr.Blocks() as app:
gr.Markdown("# Together AI Image Generator")
gr.Markdown("Generate images using the FLUX.1-schnell-Free model from Together AI")
with gr.Row():
with gr.Column(scale=1):
api_key_input = gr.Textbox(
label="Together API Key",
placeholder="Enter your Together API key here...",
type="password" # Mask the API key for security
)
prompt_input = gr.Textbox(
label="Enter your prompt",
placeholder="A beautiful sunset over mountains...",
lines=3
)
with gr.Row():
width_input = gr.Number(
label="Width",
value=1024,
minimum=256,
maximum=2048,
step=64
)
height_input = gr.Number(
label="Height",
value=768,
minimum=256,
maximum=2048,
step=64
)
steps_input = gr.Slider(
label="Steps",
minimum=1,
maximum=50,
value=4,
step=1
)
generate_button = gr.Button("Generate Image")
with gr.Column(scale=1):
image_output = gr.Image(label="Generated Image")
generate_button.click(
fn=generate_image,
inputs=[api_key_input, prompt_input, width_input, height_input, steps_input],
outputs=image_output
)
gr.Markdown("""
## Instructions
1. Enter your Together API Key (get one from https://www.together.ai)
2. Enter a descriptive prompt in the text box
3. Adjust the width, height, and steps as needed
- Width and height control the dimensions of the generated image
- Steps control the number of diffusion steps (higher = more detail but slower)
4. Click "Generate Image"
5. Wait for the image to be generated
Note: Your API key is not stored and is only used for the current session.
""")
# Launch the app
if __name__ == "__main__":
app.launch()