Introduction
P-Image LoRA Text to image draws one image from a written prompt on P-Image, the speed-focused text-to-image model from Pruna AI, with one LoRA file of your choice loaded. Pick one of seven aspect ratios or set a custom size up to 1440 pixels a side. The platform adds no content filter to the prompt, the weights or the image.
Choose a mode by starting material
| What you have | Mode |
|---|---|
| a written description | P-Image LoRA Text to image |
| one or more pictures to change | P-Image LoRA Image editing |
Key features & highlights
A few seconds per image
Pruna built P-Image for speed. In our tests the model took about three to five seconds per image without a LoRA, and a few seconds more the first time a LoRA file was fetched.
One LoRA, a whole new look
A film-colour LoRA, a flash-snapshot LoRA and a colour pencil LoRA each changed the entire picture in our tests. The LoRA loads from a public link; nothing is uploaded to us in advance and the file is not reviewed.
Custom sizes
Besides seven ratios of about one megapixel, any width and height from 256 to 1440 pixels in steps of 16 work, from square thumbnails to wide 1440 x 608 panoramas.
No content filter
Nothing is filtered or refused. The model delivers every level up to Strong for women and men as written, and the Maximum level too; Very strong requests came out with anatomy errors in our tests, which is what an unfiltered LoRA is for.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Full sentences work best: subject, clothing, place, light and lens. Put the LoRA trigger word first. at least 1 characters · at most 5000 characters |
aspect_ratio | No | Seven ratios of about one megapixel: 1:1 is 1024 x 1024, 16:9 is 1344 x 768, 3:2 is 1216 x 832, 4:3 is 1152 x 896. Pick custom to set width and height yourself. |
width | No | Used only with the custom aspect ratio: 256 to 1440 pixels in steps of 16, 1024 by default. It does not change the price. |
height | No | Used only with the custom aspect ratio: 256 to 1440 pixels in steps of 16, 1024 by default. It does not change the price. |
loras | No | One {path, scale} entry. Use a public direct link to a .safetensors file made with the P-Image trainer or trained for Z-Image Turbo. Default: |
output_format | No | JPEG by default, or PNG or WebP. The format does not change the price. |
seed | No | Keeps a set of images comparable while you change one word or the LoRA strength. It does not guarantee the exact same pixels on every run. |
Pricing
$0.006 / image
Billed per image. The aspect ratio, a custom size, the output format and loading a LoRA do not change the price.
Use cases
A house style at draft speed
Load one style LoRA, keep its trigger word at the front and run a list of prompts. Every image shares the look and each one takes seconds.
Trying public LoRAs
Test a community LoRA on a real prompt before you build anything around it; one image costs the same with or without the file.
Odd formats
Banners, panoramas and tall strips at exact pixel sizes, without cropping afterwards.
Prompt guide & pro tips
Write sentences
Describe the subject, clothing, place, light and lens. Details such as a brass elevator gate or a starburst chandelier came through as written.
Trigger word first
Style LoRAs expect their trigger at the start of the prompt. Compare the same seed with and without the file to see what the LoRA itself adds.
Keep the strength moderate
Around 0.6 to 1 a style LoRA shows clearly; at 2 the image started to break apart in our tests, and at 3 it became noise. Negative values push away from the LoRA's look but produced patchy results.
Pick LoRAs for this model
LoRAs made with the P-Image trainer and, in our tests, community LoRAs trained for Z-Image Turbo loaded. LoRAs for FLUX or SDXL models made the request fail.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "pruna-ai/p-image-lora/text-to-image",
"input": {
"aspect_ratio": "1:1",
"output_format": "jpeg",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.









