# Pruna | P-Image LoRA | Text to Image Pruna P-Image LoRA is a text-to-image model that generates high-quality visuals from text prompts with custom LoRA weight support. ## API Information - **Model Slug:** p-image-lora-text-to-image - **Branded URL:** https://www.eachlabs.ai/pruna/p-image/p-image-lora-text-to-image - **Provider:** Pruna AI - **Category:** Text to Image - **Output Type:** image - **Status:** active - **Version:** 0.0.1 - **Estimated Processing Time:** 1 seconds - **Last Updated:** 2026-05-25 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/p-image-lora-text-to-image ## Pricing Pricing information not available. ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text description of the image to generate. | | lora_weights | string | No | - | - | HuggingFace URL to LoRA weights. Format: huggingface.co//[/]. Must be trained with p-image-trainer. | | lora_scale | number | No | 0.5 | - | LoRA strength (-1 to 3). 0.5 works well for most LoRAs. | | hf_api_token | string | No | - | - | HuggingFace API token for accessing private LoRA repositories. | | aspect_ratio | string | No | 16:9 | 1:1,16:9,9:16,4:3,3:4,3:2,2:3,custom | Aspect ratio for the generated image. custom: use width/height for exact dimensions. | | width | integer | No | - | - | Custom width in pixels (256-1440, multiple of 16). Only when aspect_ratio=custom. | | height | integer | No | - | - | Custom height in pixels (256-1440, multiple of 16). Only when aspect_ratio=custom. | | seed | integer | No | - | - | Random seed for reproducible generation. | | prompt_upsampling | boolean | No | false | - | Upsample prompt with LLM for enhanced results. | | disable_safety_checker | boolean | No | false | - | Disable safety checker for generated images. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "p-image-lora-text-to-image", "input": { "prompt": "A young woman in her mid-twenties sitting by a large window in a quiet cafe, late afternoon golden hour light streaming in from the left side, casting warm soft shadows across her face, she's looking slightly off-camera with a thoughtful and calm expression, loose natural hair falling over her shoulder, wearing a simple cream linen shirt, a half-finished cup of coffee on the wooden table beside her, shallow depth of field with the background blurred into warm bokeh, subtle film grain overlay, muted warm tones, Kodak Portra 400 film style, editorial portrait photography, photorealistic, 4K" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated image)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Pruna | P-Image LoRA | Text to Image Overview** The **Pruna | P-Image LoRA | Text to Image** model from Pruna transforms text prompts into high-quality visuals using advanced LoRA technology, solving the challenge of efficient customization in text-to-image generation. Part of the P-Image family, this model leverages Low-Rank Adaptation for parameter-efficient fine-tuning, allowing users to adapt base model capabilities without extensive retraining. Its primary differentiator is the cost-effective training process that maintains high fidelity while supporting custom LoRA weights, making it ideal for developers and creators seeking flexible, API-driven image synthesis on platforms like each::labs. Available via the **Pruna | P-Image LoRA | Text to Image API**, it excels in generating detailed images from natural language descriptions, outperforming traditional fine-tuning in resource efficiency. Whether for prototyping concepts or producing stylized art, Pruna text-to-image delivers consistent results with minimal overhead, positioning it as a go-to for scalable workflows. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.