| | 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:
|
| |
|
| | client = Together(api_key=api_key)
|
| |
|
| |
|
| | 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"
|
| | )
|
| |
|
| |
|
| | image_b64 = response.data[0].b64_json
|
| |
|
| |
|
| | 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)}"
|
| |
|
| |
|
| | 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"
|
| | )
|
| | 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.
|
| | """)
|
| |
|
| |
|
| | if __name__ == "__main__":
|
| | app.launch() |