Official Python client for the ModelsLab API - generate images, videos, audio, and more.
Overview
The ModelsLab Python SDK provides a simple, type-safe interface to interact with all ModelsLab APIs. It handles authentication, request formatting, and response parsing automatically.
PyPI Package
View on PyPI
GitHub
Source code and issues
Installation
pip install modelslab_py
Requires Python 3.7 or higher.
Quick Start
Here’s a complete example to generate your first image:
from modelslab_py.core.client import Clientfrom modelslab_py.core.apis.realtime import Realtimefrom modelslab_py.schemas.realtime import RealtimeText2ImageSchema# Initialize the clientclient = Client(api_key="your_api_key")# Create the API instanceapi = Realtime(client=client, enterprise=False)# Define the generation parametersschema = RealtimeText2ImageSchema( prompt="A majestic lion in a savanna at sunset, photorealistic, 8k", negative_prompt="blurry, low quality, distorted", width=512, height=512, samples=1, num_inference_steps=30, guidance_scale=7.5)# Generate the imageresponse = api.text_to_image(schema)# Handle the responseif response.get("status") == "success": print(f"Image URL: {response['output'][0]}")elif response.get("status") == "processing": print(f"Request ID: {response['id']} - Check back later")else: print(f"Error: {response.get('message')}")
Client Configuration
Basic Setup
from modelslab_py.core.client import Client# Standard API accessclient = Client(api_key="your_api_key")
Enterprise Setup
from modelslab_py.core.client import Clientfrom modelslab_py.core.apis.realtime import Realtimeclient = Client(api_key="your_enterprise_api_key")# Set enterprise=True for enterprise endpointsapi = Realtime(client=client, enterprise=True)
Available APIs
Image Generation APIs
Realtime - Fast image generation with FLUX and other models
Community - Access community fine-tuned models
Image_editing - Edit, enhance, and transform images
Video APIs
Video - Generate videos from text or images
Audio APIs
Audio - Text-to-speech, voice cloning, music generation
Other APIs
Interior - Interior design and room transformation
Three_D - Generate 3D models from text or images
Image Generation
Text to Image (Realtime)
Generate images from text prompts using the fastest models:
from modelslab_py.schemas.image_editing import SuperResolutionSchemaschema = SuperResolutionSchema( image="https://example.com/low-res-image.jpg", scale=4 # 2x or 4x upscale)response = api.super_resolution(schema)print(f"Upscaled image: {response['output'][0]}")
Object Removal
from modelslab_py.schemas.image_editing import ObjectRemovalSchemaschema = ObjectRemovalSchema( image="https://example.com/photo.jpg", mask_image="https://example.com/mask.png" # White areas will be removed)response = api.object_remover(schema)print(response)
Outpainting (Extend Images)
from modelslab_py.schemas.image_editing import OutpaintingSchemaschema = OutpaintingSchema( image="https://example.com/photo.jpg", prompt="Continue the landscape with mountains and trees", width=1024, # New width (larger than original) height=768 # New height)response = api.outpainting(schema)print(response)
AI Headshots
from modelslab_py.schemas.image_editing import HeadshotSchema, FluxHeadshotSchema# Standard headshotschema = HeadshotSchema( image="https://example.com/selfie.jpg", prompt="Professional headshot, studio lighting, business attire")response = api.headshot(schema)# FLUX-powered headshot (higher quality)schema = FluxHeadshotSchema( image="https://example.com/selfie.jpg", prompt="Professional LinkedIn headshot, neutral background")response = api.flux_headshot(schema)
Face Generation
from modelslab_py.schemas.image_editing import FacegenSchemaschema = FacegenSchema( image="https://example.com/portrait.jpg", prompt="Make the person look 10 years younger")response = api.facegen(schema)print(response)
Fashion / Virtual Try-On
from modelslab_py.schemas.image_editing import FashionSchemaschema = FashionSchema( model_image="https://example.com/person.jpg", cloth_image="https://example.com/shirt.jpg")response = api.fashion(schema)print(response)
Video Generation
Text to Video
from modelslab_py.core.client import Clientfrom modelslab_py.core.apis.video import Videofrom modelslab_py.schemas.video import Text2Videoclient = Client(api_key="your_api_key")api = Video(client=client, enterprise=False)schema = Text2Video( model_id="cogvideox", prompt="A spaceship flying through an asteroid field, cinematic, 4K", negative_prompt="low quality, blurry, static", width=512, height=512, num_frames=25, num_inference_steps=20, guidance_scale=7)response = api.text_to_video(schema)# Video generation is async - you'll get a request IDif response.get("status") == "processing": print(f"Video processing, request ID: {response['id']}") print(f"ETA: {response.get('eta')} seconds")
Image to Video
Animate a static image:
from modelslab_py.schemas.video import Image2Videoschema = Image2Video( model_id="cogvideox", init_image="https://example.com/landscape.jpg", prompt="The clouds moving slowly, birds flying in the distance", num_frames=25, num_inference_steps=20)response = api.image_to_video(schema)print(response)
Audio Generation
Text to Speech
from modelslab_py.core.client import Clientfrom modelslab_py.core.apis.audio import Audiofrom modelslab_py.schemas.audio import Text2Speechclient = Client(api_key="your_api_key")api = Audio(client=client, enterprise=False)schema = Text2Speech( text="Hello, welcome to ModelsLab! This is a sample audio generation.", voice_id="alloy", # Choose from available voices language="en")response = api.text_to_speech(schema)print(f"Audio URL: {response['output'][0]}")
Voice Cloning (Voice to Voice)
from modelslab_py.schemas.audio import Voice2Voiceschema = Voice2Voice( init_audio="https://example.com/source-voice.mp3", target_audio="https://example.com/target-voice.mp3" # Voice to clone)response = api.voice2voice(schema)print(response)
Music Generation
from modelslab_py.schemas.audio import MusicGenSchemaschema = MusicGenSchema( prompt="Upbeat electronic dance music with heavy bass drops", duration=30 # Duration in seconds)response = api.music_gen(schema)print(response)
Song Generation
from modelslab_py.schemas.audio import SongGeneratorschema = SongGenerator( prompt="A pop song about summer love", lyrics="optional custom lyrics here")response = api.song_generator(schema)print(response)
Lyrics Generation
from modelslab_py.schemas.audio import LyricsGeneratorschema = LyricsGenerator( prompt="Write lyrics for a country song about road trips")response = api.lyrics_gen(schema)print(response)
Sound Effects (SFX)
from modelslab_py.schemas.audio import SFXschema = SFX( prompt="Thunder rolling in the distance, heavy rain", duration=10)response = api.sfx_gen(schema)print(response)
from modelslab_py.core.client import Clientfrom modelslab_py.core.apis.interior import Interiorfrom modelslab_py.schemas.interior import InteriorSchemaclient = Client(api_key="your_api_key")api = Interior(client=client, enterprise=False)schema = InteriorSchema( init_image="https://example.com/room-photo.jpg", prompt="Modern minimalist living room with Scandinavian furniture")response = api.interior(schema)print(response)
Room Decorator
from modelslab_py.schemas.interior import RoomDecoratorSchemaschema = RoomDecoratorSchema( init_image="https://example.com/empty-room.jpg", prompt="Cozy bedroom with warm lighting and plants")response = api.room_decorator(schema)print(response)
Exterior Restoration
from modelslab_py.schemas.interior import ExteriorSchemaschema = ExteriorSchema( init_image="https://example.com/house-exterior.jpg", prompt="Modern exterior with landscaping and new paint")response = api.exterior_restorer(schema)print(response)
Floor Planning
from modelslab_py.schemas.interior import FloorSchemaschema = FloorSchema( init_image="https://example.com/floor-plan.jpg", prompt="Open concept kitchen and living area")response = api.floor(schema)print(response)
For long-running operations (videos, training), poll for results:
import timefrom modelslab_py.core.client import Clientfrom modelslab_py.core.apis.video import Videofrom modelslab_py.schemas.video import Text2Videodef generate_video_with_polling(prompt: str, api_key: str, timeout: int = 300): """Generate a video and wait for completion.""" client = Client(api_key=api_key) api = Video(client=client, enterprise=False) schema = Text2Video( model_id="cogvideox", prompt=prompt, width=512, height=512, num_frames=25 ) response = api.text_to_video(schema) if response.get("status") == "success": return response["output"][0] if response.get("status") != "processing": raise Exception(f"Error: {response.get('message')}") request_id = response["id"] start_time = time.time() while time.time() - start_time < timeout: # Use the fetch endpoint (implement based on your needs) # This is a simplified example time.sleep(5) # Check status... # If complete, return URL # If failed, raise exception raise Exception("Timeout waiting for video generation")