TutorialsGetting StartedBuilding your first GenAI App
BeginnerUpdated Dec 15, 2025

Building your first GenAI App

A complete walkthrough of setting up your environment, API keys, and making your first request to the image generation model using Python.

SC
Sarah Chen
Developer Advocate
5 min read

Introduction

Generative AI has opened up new frontiers for application developers. In this guide, we will build a simple command-line interface (CLI) tool that takes a text prompt from the user and generates a high-quality image using the Abstrakt API. By the end of this tutorial, you will understand authentication, request formatting, and handling image responses.

PrerequisitesMake sure you have Python 3.8+ installed and an active API key from the dashboard. If you don't have a key, sign up here.

Setting up the Environment

First, let's create a new directory for our project and set up a virtual environment to keep our dependencies isolated.

$ mkdir genai-app
$ cd genai-app
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install requests python-dotenv

Create the Configuration

Create a .env file in your project root to store your API key securely:

ABSTRAKT_API_KEY=your_api_key_here

The Implementation

Create a file named main.py. We'll start by importing the necessary libraries and initializing the client. We recommend using environment variables for your API key to avoid hardcoding secrets.

python
import os
import requests
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

def generate_image(prompt):
    """Generate an image from a text prompt."""
    api_key = os.getenv("ABSTRAKT_API_KEY")
    
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    
    payload = {
        "input": {
            "prompt": prompt,
            "image_size": {"width": 1024, "height": 1024},
            "num_images": 1
        }
    }
    
    print(f"Generating image for: {prompt}...")
    
    response = requests.post(
        "https://api.abstrakt.one/v1/models/fal-ai/flux/schnell/run",
        headers=headers,
        json=payload
    )
    
    result = response.json()
    
    if result.get("status") == "completed":
        return result["result"]["items"][0]["url"]
    else:
        raise Exception(f"Generation failed: {result}")

if __name__ == "__main__":
    prompt = "A futuristic city with flying cars, cyberpunk style, neon lights"
    url = generate_image(prompt)
    print(f"Image generated successfully: {url}")

Testing the Application

Run the script from your terminal. If the request is successful, you will see a URL printed to the console. This URL points to your generated image stored on our CDN.

$ python main.py
Generating image for: A futuristic city with flying cars...
Image generated successfully: https://cdn.abstrakt.one/images/...

Downloading the Image

Let's enhance our script to download and save the image locally:

python
def download_image(url, filename):
    """Download an image from URL and save locally."""
    response = requests.get(url)
    with open(filename, "wb") as f:
        f.write(response.content)
    print(f"Image saved to {filename}")

# Add to main
if __name__ == "__main__":
    prompt = "A futuristic city with flying cars, cyberpunk style"
    url = generate_image(prompt)
    download_image(url, "generated_image.png")

Next Steps

  • Explore adding negative prompts to refine the output
  • Implement a webhook handler for asynchronous processing
  • Try different models like FLUX Dev for higher quality
  • Add error handling and retry logic for production use
#python#quickstart#image-generation