---
title: "Check if there are generation requests queued for fulfillment"
method: POST
path: "/v2/generate/pop"
tags: ["v2"]
---

# Check if there are generation requests queued for fulfillment

`POST /v2/generate/pop`

This endpoint is used by registered workers only

## Headers

- `apikey` string, required
- `X-Fields` string, mask

## Request body

- PopInputStable
  - `name` string — The Name of the Worker.
  - `priority_usernames` string[]
  - `nsfw` boolean — Whether this worker can generate NSFW requests or not.
  - `models` string[]
  - `bridge_agent` string — The worker name, version and website.
  - `threads` integer — How many threads this worker is running. This is used to accurately the current power available in the horde.
  - `require_upfront_kudos` boolean — If True, this worker will only pick up requests where the owner has the required kudos to consume already available.
  - `amount` integer — How many jobvs to pop at the same time
  - `max_pixels` integer — The maximum amount of pixels this worker can generate.
  - `blacklist` string[]
  - `allow_img2img` boolean — If True, this worker will pick up img2img requests.
  - `allow_painting` boolean — If True, this worker will pick up inpainting/outpainting requests.
  - `allow_unsafe_ipaddr` boolean — If True, this worker will pick up img2img requests coming from clients with an unsafe IP.
  - `allow_post_processing` boolean — If True, this worker will pick up requests requesting post-processing.
  - `allow_controlnet` boolean — If True, this worker will pick up requests requesting ControlNet.
  - `allow_lora` boolean — If True, this worker will pick up requests requesting LoRas.

## Response `200`

Generation Popped

- GenerationPayloadStable
  - `payload` ModelPayloadStable
    - `sampler_name` 'k_euler' | 'lcm' | 'k_euler_a' | 'k_dpmpp_2s_a' | 'DDIM' | 'dpmsolver' | 'k_lms' | 'k_dpm_fast' | 'k_dpmpp_sde' | 'k_dpm_2' | 'k_dpm_2_a' | 'k_dpm_adaptive' | 'k_heun' | 'k_dpmpp_2m'
    - `cfg_scale` number
    - `denoising_strength` number
    - `seed` string — The seed to use to generate this request. You can pass text as well as numbers.
    - `height` integer — The height of the image to generate.
    - `width` integer — The width of the image to generate.
    - `seed_variation` integer — If passed with multiple n, the provided seed will be incremented every time by this value.
    - `post_processing` string[]
    - `karras` boolean — Set to True to enable karras noise scheduling tweaks.
    - `tiling` boolean — Set to True to create images that stitch together seamlessly.
    - `hires_fix` boolean — Set to True to process the image at base resolution before upscaling and re-processing.
    - `clip_skip` integer — The number of CLIP language processor layers to skip.
    - `control_type` 'canny' | 'hed' | 'depth' | 'normal' | 'openpose' | 'seg' | 'scribble' | 'fakescribbles' | 'hough'
    - `image_is_control` boolean — Set to True if the image submitted is a pre-generated control map for ControlNet use.
    - `return_control_map` boolean — Set to True if you want the ControlNet map returned instead of a generated image.
    - `facefixer_strength` number
    - `loras` ModelPayloadLorasStable[]
      - `name` string, required — The exact name or CivitAI Model Page ID of the LoRa. If is_version is true, this should be the CivitAI version ID.
      - `model` number — The strength of the LoRa to apply to the SD model.
      - `clip` number — The strength of the LoRa to apply to the clip model.
      - `inject_trigger` string — If set, will try to discover a trigger for this LoRa which matches or is similar to this string and inject it into the prompt. If 'any' is specified it will be pick the first trigger.
      - `is_version` boolean — If true, will consider the LoRa ID as a CivitAI version ID and search accordingly. Ensure the name is an integer.
    - `tis` ModelPayloadTextualInversionsStable[]
      - `name` string, required — The exact name or CivitAI ID of the Textual Inversion.
      - `inject_ti` 'prompt' | 'negprompt' — If set, Will automatically add this TI filename to the prompt or negative prompt accordingly using the provided strength. If this is set to None, then the user will have to manually add the embed to the prompt themselves.
      - `strength` number — The strength with which to apply the TI to the prompt. Only used when inject_ti is not None
    - `special` ModelSpecialPayloadStable
      - `*` object
    - `prompt` string — The prompt which will be sent to Stable Diffusion to generate an image.
    - `ddim_steps` integer
    - `n_iter` integer — The amount of images to generate.
    - `use_nsfw_censor` boolean — When true will apply NSFW censoring model on the generation.
  - `id` string — The UUID for this image generation.
  - `ids` string[]
  - `skipped` NoValidRequestFoundStable
    - `worker_id` integer — How many waiting requests were skipped because they demanded a specific worker.
    - `performance` integer — How many waiting requests were skipped because they required higher performance.
    - `nsfw` integer — How many waiting requests were skipped because they demanded a nsfw generation which this worker does not provide.
    - `blacklist` integer — How many waiting requests were skipped because they demanded a generation with a word that this worker does not accept.
    - `untrusted` integer — How many waiting requests were skipped because they demanded a trusted worker which this worker is not.
    - `models` integer — How many waiting requests were skipped because they demanded a different model than what this worker provides.
    - `bridge_version` integer — How many waiting requests were skipped because they require a higher version of the bridge than this worker is running (upgrade if you see this in your skipped list).
    - `kudos` integer — How many waiting requests were skipped because the user didn't have enough kudos when this worker requires upfront kudos.
    - `max_pixels` integer — How many waiting requests were skipped because they demanded a higher size than this worker provides.
    - `unsafe_ip` integer — How many waiting requests were skipped because they came from an unsafe IP.
    - `img2img` integer — How many waiting requests were skipped because they requested img2img.
    - `painting` integer — How many waiting requests were skipped because they requested inpainting/outpainting.
    - `post-processing` integer — How many waiting requests were skipped because they requested post-processing.
    - `lora` integer — How many waiting requests were skipped because they requested loras.
    - `controlnet` integer — How many waiting requests were skipped because they requested a controlnet.
  - `model` string — Which of the available models to use for this request.
  - `source_image` string — The Base64-encoded webp to use for img2img.
  - `source_processing` 'img2img' | 'inpainting' | 'outpainting' | 'remix' — If source_image is provided, specifies how to process it.
  - `source_mask` string — If img_processing is set to 'inpainting' or 'outpainting', this parameter can be optionally provided as the mask of the areas to inpaint. If this arg is not passed, the inpainting/outpainting mask has to be embedded as alpha channel.
  - `extra_source_images` ExtraSourceImage[]
    - `image` string — The Base64-encoded webp to use for further processing.
    - `strength` number — Optional field, determining the strength to use for the processing
  - `r2_upload` string — The r2 upload link to use to upload this image.
  - `r2_uploads` string[]

## Other responses

- `400` — Validation Error
- `401` — Invalid API Key
- `403` — Access Denied

---

[API](https://skmtc.net/haidra-org/apis/ai-horde.md) · [All operations](https://skmtc.net/haidra-org/apis/ai-horde/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/haidra-org/ai-horde/revisions/dfeb0bedd935/schema)
