Consistent Character V1 Serverless API

Create images of a given character in different poses

POST /v2/consistent-character-ai-neolemon · submit + poll
 1# pip install "segmind>=1.1.0"
 2# export SEGMIND_API_KEY="YOUR_API_KEY"
 3import segmind
 4
 5# Async (v2): submit to the queue and block until COMPLETED.
 6# run() returns the final result dict (600s deadline, 1.0s poll by default).
 7result = segmind.run(
 8    "consistent-character-ai-neolemon",
 9    prompt="((masterpiece, best quality, highly detailed)), simple background, character sheet, multiple poses, multiple actions, visible face, (one person), portrait, full body, young african american girl, white sweater, jeans, short curly brown hair, 2D illustration style",
10    negative_prompt="text, watermark, underexposed, ugly, jpeg, (worst quality, low quality, lowres, low details, oversaturated, undersaturated, overexposed, grayscale, bw, bad photo, bad art:1.4), (font, username, error, logo, words, letters, digits, autograph, trademark, name:1.2), (blur, blurry, grainy), cropped, out of frame, cut off, jpeg artifacts, out of focus, glitch, duplicate, (amateur:1.3), merging, clipping, (nsfw), multiple hands, mutant, glitch, uncanny, cross eye, broken face, astronaut, helmet, blurry,",
11    image="https://segmind-sd-models.s3.amazonaws.com/display_images/testing_imgs/ref.pose.png",
12    num_inference_steps=20,
13    guidance_scale=7,
14    seed=4898558797,
15    samples=1,
16    strength=0.8,
17    scheduler="karras",
18    sampler="dpmpp_2m",
19    upscale_by=2,
20    upscale_steps=20,
21    upscale_guidance_scale=7,
22    upscale_scheduler="karras",
23    upscale_sampler="dpmpp_2m",
24    upscale_mode_type="Linear",
25    fd_steps=20,
26    fd_guidance_scale=7,
27    fd_scheduler="karras",
28    fd_sampler="dpmpp_2m",
29)
30print(result["status"])                      # COMPLETED
31print(result.get("output"))                  # model output (e.g. media URL)
32print(result["metrics"]["inference_time"])   # server compute seconds
33
34# --- Or submit + poll manually (track request_id, control the cadence) ---
35from segmind import SegmindClient, InferenceFailed, InferenceTimeout
36
37client = SegmindClient()                      # reads SEGMIND_API_KEY
38payload = {
39    "prompt": "((masterpiece, best quality, highly detailed)), simple background, character sheet, multiple poses, multiple actions, visible face, (one person), portrait, full body, young african american girl, white sweater, jeans, short curly brown hair, 2D illustration style",
40    "negative_prompt": "text, watermark, underexposed, ugly, jpeg, (worst quality, low quality, lowres, low details, oversaturated, undersaturated, overexposed, grayscale, bw, bad photo, bad art:1.4), (font, username, error, logo, words, letters, digits, autograph, trademark, name:1.2), (blur, blurry, grainy), cropped, out of frame, cut off, jpeg artifacts, out of focus, glitch, duplicate, (amateur:1.3), merging, clipping, (nsfw), multiple hands, mutant, glitch, uncanny, cross eye, broken face, astronaut, helmet, blurry,",
41    "image": "https://segmind-sd-models.s3.amazonaws.com/display_images/testing_imgs/ref.pose.png",
42    "num_inference_steps": 20,
43    "guidance_scale": 7,
44    "seed": 4898558797,
45    "samples": 1,
46    "strength": 0.8,
47    "scheduler": "karras",
48    "sampler": "dpmpp_2m",
49    "upscale_by": 2,
50    "upscale_steps": 20,
51    "upscale_guidance_scale": 7,
52    "upscale_scheduler": "karras",
53    "upscale_sampler": "dpmpp_2m",
54    "upscale_mode_type": "Linear",
55    "fd_steps": 20,
56    "fd_guidance_scale": 7,
57    "fd_scheduler": "karras",
58    "fd_sampler": "dpmpp_2m",
59}
60job = client.submit_async("consistent-character-ai-neolemon", **payload)
61print(job.request_id)                         # available immediately
62try:
63    result = job.wait(timeout=600, interval=1.0)
64except InferenceTimeout as e:
65    print("still running:", e.request_id)
66except InferenceFailed as e:
67    print("failed:", e.detail)

API Endpoint

POSThttps://api.segmind.com/v1/consistent-character-ai-neolemon

Parameters

fd_guidance_scalerequired
number

Guidance scale for face detection

Default: 7Range: 1 - 20
fd_samplerrequired
string

Sampler type for face detection

Default: "dpmpp_2m"
Allowed values (26 total):
"euler""euler_pp""euler_ancestral""euler_ancestral_pp""heun""heunpp2""dpm_2""dpm_2_ancestral""lms""dpm_fast"+16 more
fd_schedulerrequired
string

Scheduler type for face detection

Default: "karras"
Allowed values :
"normal""karras""exponential""sgm_uniform""simple""ddim_uniform"
fd_stepsrequired
integer

Number of steps for face detection

Default: 20Range: 1 - 100
guidance_scalerequired
number

Guidance scale for image generation

Default: 7Range: 1 - 20
imagerequired
string (uri)

URL of the input image

Default: "https://segmind-sd-models.s3.amazonaws.com/display_images/testing_imgs/ref.pose.png"
num_inference_stepsrequired
integer

Number of steps for inference

Default: 20Range: 1 - 100
promptrequired
string

Text prompt for image generation

Default: "((masterpiece, best quality, highly detailed)), simple background, character sheet, multiple poses, multiple actions, visible face, (one person), portrait, full body,young african american girl, white sweater, jeans, short curly brown hair, 2D illustration style"
samplerrequired
string

Sampler type for image generation

Default: "dpmpp_2m"
Allowed values (26 total):
"euler""euler_pp""euler_ancestral""euler_ancestral_pp""heun""heunpp2""dpm_2""dpm_2_ancestral""lms""dpm_fast"+16 more
samplesrequired
integer

Number of samples to generate

Default: 1
schedulerrequired
string

Scheduler type for image generation

Default: "karras"
Allowed values :
"normal""karras""exponential""sgm_uniform""simple""ddim_uniform"
seedrequired
integer

Seed for random number generation

Default: 4898558797
strengthrequired
number

Strength of image generation

Default: 0.8Range: 0 - 1
upscale_byrequired
integer

Upscale factor for the image

Default: 2Range: 1 - 4
upscale_guidance_scalerequired
number

Guidance scale for upscaling

Default: 7Range: 1 - 20
upscale_mode_typerequired
string

Mode type for upscaling

Default: "Linear"
Allowed values :
"Linear""Bicubic""Lanczos"
upscale_samplerrequired
string

Sampler type for upscaling

Default: "dpmpp_2m"
Allowed values (26 total):
"euler""euler_pp""euler_ancestral""euler_ancestral_pp""heun""heunpp2""dpm_2""dpm_2_ancestral""lms""dpm_fast"+16 more
upscale_schedulerrequired
string

Scheduler type for upscaling

Default: "karras"
Allowed values :
"normal""karras""exponential""sgm_uniform""simple""ddim_uniform"
upscale_stepsrequired
integer

Number of steps for upscaling

Default: 20Range: 1 - 100
negative_promptoptional
string

Negative prompt to avoid certain elements

Default: "text, watermark, underexposed, ugly, jpeg, (worst quality, low quality, lowres, low details, oversaturated, undersaturated, overexposed, grayscale, bw, bad photo, bad art:1.4), (font, username, error, logo, words, letters, digits, autograph, trademark, name:1.2), (blur, blurry, grainy), cropped, out of frame, cut off, jpeg artifacts, out of focus, glitch, duplicate, (amateur:1.3), merging, clipping, (nsfw), multiple hands, mutant, glitch, uncanny, cross eye, broken face, astronaut, helmet, blurry,"

Response Type

Returns: Image

Asynchronous requests (v2)

Use Async for video, long-running (>~60s), or high-concurrency workloads; Sync is simplest for fast image & LLM calls. Async submits a request and you poll it to completion.

  1. 1
    POST /v2/consistent-character-ai-neolemon

    Submitreturns request_id, status_url, response_url

  2. 2
    GET /v2/requests/{id}/status

    Polluntil COMPLETED or FAILED

  3. 3
    GET /v2/requests/{id}

    Resultfinal response body

Status states

QUEUEDAccepted, waiting for a worker
PROCESSINGRunning on a worker
COMPLETEDDone — result body is ready
FAILEDErrored (incl. content/RAI blocks)
  • A FAILED request is served as HTTP 422 — the body still carries the error detail.
  • An unknown or expired request_id returns HTTP 404.
  • Results are retained for 1 hour, then expire.
  • Content / RAI blocks surface as FAILED, not a separate state.
  • Track completion by polling the status endpoint.

Common Error Codes

The API returns standard HTTP status codes. Detailed error messages are provided in the response body.

400

Bad Request

Invalid parameters or request format

401

Unauthorized

Missing or invalid API key

403

Forbidden

Insufficient permissions

404

Not Found

Model or endpoint not found

406

Insufficient Credits

Not enough credits to process request

429

Rate Limited

Too many requests

500

Server Error

Internal server error

502

Bad Gateway

Service temporarily unavailable

504

Timeout

Request timed out