---
title: "Create a new stream"
method: POST
path: "/v1/streams"
tags: ["Streams", "public"]
---

# Create a new stream

`POST /v1/streams`

Creates a new video processing stream with the specified configuration

## Request body

- union
  - StreamDiffusion
    - `pipeline` 'streamdiffusion', required
    - `params` union, required
      - SDTurbo
        - `model_id` 'stabilityai/sd-turbo', required
        - `prompt` union — Text prompt describing the desired image. Can be a single string or weighted list of (prompt, weight) tuples.
          - string
          - array[]
            - unknown[]
              - …
        - `prompt_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple prompts. Slerp provides smoother transitions than linear.
        - `normalize_prompt_weights` boolean — Whether to normalize prompt weights to sum to 1.0 for consistent generation.
        - `normalize_seed_weights` boolean — Whether to normalize seed weights to sum to 1.0 for consistent generation.
        - `negative_prompt` string — Text describing what to avoid in the generated image.
        - `guidance_scale` number — Strength of prompt adherence. Higher values make the model follow the prompt more strictly.
        - `delta` number — Delta sets per-frame denoising progress: lower delta means steadier, less flicker but slower/softer; higher delta means faster, sharper but more flicker/artifacts (often reduce CFG).
        - `num_inference_steps` integer — Builds the full denoising schedule (the 'grid' of possible refinement steps). Changing it changes what each step number (t_index_list value) means. Keep it fixed for a session and only adjust if you're deliberately redefining the schedule; if you do, proportionally remap your t_index_list. Typical range 10-100 with default being 50.
        - `t_index_list` integer[] — The ordered list of step indices from the num_inference_steps schedule to execute per frame. Each index is one model pass, so latency scales with the list length. Higher indices (e.g., 40–49 on a 50-step grid) mainly polish and preserve structure (lower flicker), while lower indices (<20) rewrite structure (more flicker, creative). Values must be non-decreasing, and each between 0 and num_inference_steps. ⚠️ NOTE: t_index_list must have 1–4 elements, non-decreasing, and within [0, num_inference_steps]. The value should not go above 50.
        - `use_safety_checker` boolean — Whether to use safety checker for content filtering
        - `width` integer — Output image width in pixels. Must be divisible by 64 and between 384-1024.
        - `height` integer — Output image height in pixels. Must be divisible by 64 and between 384-1024.
        - `lora_dict` object, nullable — Dictionary mapping LoRA model paths to their weights for fine-tuning the base model.
        - `use_lcm_lora` boolean — Whether to use Latent Consistency Model LoRA for faster inference.
        - `lcm_lora_id` string — Identifier for the LCM LoRA model to use. Example: "latent-consistency/lcm-lora-sdv1-5"
        - `acceleration` 'none' | 'xformers' | 'tensorrt' — Acceleration method for inference. Options: "none", "xformers", "tensorrt". TensorRT provides the best performance but requires engine compilation.
        - `use_denoising_batch` boolean — Whether to process multiple denoising steps in a single batch for efficiency.
        - `do_add_noise` boolean — Whether to add noise to input frames before processing. Enabling this slightly re-noises each frame to improve temporal stability, reduce ghosting/texture sticking, and prevent drift; disabling can yield sharper, lower-latency results but may increase flicker and artifact accumulation over time.
        - `seed` union — Random seed for generation. Can be a single integer or weighted list of (seed, weight) tuples.
          - integer
          - array[]
            - unknown[]
              - …
        - `seed_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple seeds. Slerp provides smoother transitions than linear.
        - `enable_similar_image_filter` boolean — Whether to skip frames that are too similar to the previous output to reduce flicker.
        - `similar_image_filter_threshold` number — Similarity threshold for the image filter. Higher values allow more variation between frames.
        - `similar_image_filter_max_skip_frame` integer — Maximum number of consecutive frames that can be skipped by the similarity filter.
        - `skip_diffusion` boolean — Whether to skip the diffusion process. Any ControlNets or diffusion-only parameters are ignored when enabled. Example use cases: - Stream the output of a preprocessor (e.g. live depth maps or pose skeletons), - Run post-processors like RealESRGAN upscaler on externally provided frames, - Warm a pipeline without paying the diffusion cost. ⚠️ NOTE: skip_diffusion is evaluated at pipeline creation time; switching mid-stream triggers a pipeline reload.
        - `image_preprocessing` object — List of image preprocessor configurations for image processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `image_postprocessing` object — List of image postprocessor configurations for image processing ⚠️ NOTE: realesrgan_trt processor requires a restart to change because it affects resolution.
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_preprocessing` object — List of latent preprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_postprocessing` object — List of latent postprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `controlnets` object[] — List of ControlNet configurations for guided generation. Each ControlNet provides different types of conditioning (pose, edges, depth, etc.). Dynamic updates limited to conditioning_scale changes only; cannot add new ControlNets or change model_id/preprocessor/params without reload.
          - `model_id` 'thibaud/controlnet-sd21-openpose-diffusers' | 'thibaud/controlnet-sd21-hed-diffusers' | 'thibaud/controlnet-sd21-canny-diffusers' | 'thibaud/controlnet-sd21-depth-diffusers' | 'thibaud/controlnet-sd21-color-diffusers' | 'daydreamlive/TemporalNet2-stable-diffusion-2-1', required — ⚠️ NOTE: ControlNet model_ids must be unique. Additionally, they must be compatible with the selected base model.
          - `conditioning_scale` number, required — Strength of the ControlNet's influence on generation. Higher values make the model follow the control signal more strictly. Typical range 0.0-1.0, where 0.0 disables the control and 1.0 applies full control. Default: 1.0
          - `preprocessor` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required — Preprocessor to apply to input frames before feeding to the ControlNet. Must be one of the supported preprocessors.
          - `preprocessor_params` object — Additional parameters for the preprocessor. For example, canny edge detection uses 'low_threshold' and 'high_threshold' values.
          - `enabled` boolean, required — Whether this ControlNet is active. Disabled ControlNets are not loaded. Default: true
          - `control_guidance_start` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance begins. 0.0 means guidance starts from the beginning.
          - `control_guidance_end` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance ends. 1.0 means guidance continues until the end.
      - SDXL
        - `model_id` 'stabilityai/sdxl-turbo', required
        - `prompt` union — Text prompt describing the desired image. Can be a single string or weighted list of (prompt, weight) tuples.
          - string
          - array[]
            - unknown[]
              - …
        - `prompt_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple prompts. Slerp provides smoother transitions than linear.
        - `normalize_prompt_weights` boolean — Whether to normalize prompt weights to sum to 1.0 for consistent generation.
        - `normalize_seed_weights` boolean — Whether to normalize seed weights to sum to 1.0 for consistent generation.
        - `negative_prompt` string — Text describing what to avoid in the generated image.
        - `guidance_scale` number — Strength of prompt adherence. Higher values make the model follow the prompt more strictly.
        - `delta` number — Delta sets per-frame denoising progress: lower delta means steadier, less flicker but slower/softer; higher delta means faster, sharper but more flicker/artifacts (often reduce CFG).
        - `num_inference_steps` integer — Builds the full denoising schedule (the 'grid' of possible refinement steps). Changing it changes what each step number (t_index_list value) means. Keep it fixed for a session and only adjust if you're deliberately redefining the schedule; if you do, proportionally remap your t_index_list. Typical range 10-100 with default being 50.
        - `t_index_list` integer[] — The ordered list of step indices from the num_inference_steps schedule to execute per frame. Each index is one model pass, so latency scales with the list length. Higher indices (e.g., 40–49 on a 50-step grid) mainly polish and preserve structure (lower flicker), while lower indices (<20) rewrite structure (more flicker, creative). Values must be non-decreasing, and each between 0 and num_inference_steps. ⚠️ NOTE: t_index_list must have 1–4 elements, non-decreasing, and within [0, num_inference_steps]. The value should not go above 50.
        - `use_safety_checker` boolean — Whether to use safety checker for content filtering
        - `width` integer — Output image width in pixels. Must be divisible by 64 and between 384-1024.
        - `height` integer — Output image height in pixels. Must be divisible by 64 and between 384-1024.
        - `lora_dict` object, nullable — Dictionary mapping LoRA model paths to their weights for fine-tuning the base model.
        - `use_lcm_lora` boolean — Whether to use Latent Consistency Model LoRA for faster inference.
        - `lcm_lora_id` string — Identifier for the LCM LoRA model to use. Example: "latent-consistency/lcm-lora-sdv1-5"
        - `acceleration` 'none' | 'xformers' | 'tensorrt' — Acceleration method for inference. Options: "none", "xformers", "tensorrt". TensorRT provides the best performance but requires engine compilation.
        - `use_denoising_batch` boolean — Whether to process multiple denoising steps in a single batch for efficiency.
        - `do_add_noise` boolean — Whether to add noise to input frames before processing. Enabling this slightly re-noises each frame to improve temporal stability, reduce ghosting/texture sticking, and prevent drift; disabling can yield sharper, lower-latency results but may increase flicker and artifact accumulation over time.
        - `seed` union — Random seed for generation. Can be a single integer or weighted list of (seed, weight) tuples.
          - integer
          - array[]
            - unknown[]
              - …
        - `seed_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple seeds. Slerp provides smoother transitions than linear.
        - `enable_similar_image_filter` boolean — Whether to skip frames that are too similar to the previous output to reduce flicker.
        - `similar_image_filter_threshold` number — Similarity threshold for the image filter. Higher values allow more variation between frames.
        - `similar_image_filter_max_skip_frame` integer — Maximum number of consecutive frames that can be skipped by the similarity filter.
        - `skip_diffusion` boolean — Whether to skip the diffusion process. Any ControlNets or diffusion-only parameters are ignored when enabled. Example use cases: - Stream the output of a preprocessor (e.g. live depth maps or pose skeletons), - Run post-processors like RealESRGAN upscaler on externally provided frames, - Warm a pipeline without paying the diffusion cost. ⚠️ NOTE: skip_diffusion is evaluated at pipeline creation time; switching mid-stream triggers a pipeline reload.
        - `image_preprocessing` object — List of image preprocessor configurations for image processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `image_postprocessing` object — List of image postprocessor configurations for image processing ⚠️ NOTE: realesrgan_trt processor requires a restart to change because it affects resolution.
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_preprocessing` object — List of latent preprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_postprocessing` object — List of latent postprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `controlnets` object[] — List of ControlNet configurations for guided generation. Each ControlNet provides different types of conditioning (pose, edges, depth, etc.). Dynamic updates limited to conditioning_scale changes only; cannot add new ControlNets or change model_id/preprocessor/params without reload.
          - `model_id` 'xinsir/controlnet-depth-sdxl-1.0' | 'xinsir/controlnet-canny-sdxl-1.0' | 'xinsir/controlnet-tile-sdxl-1.0', required — ⚠️ NOTE: ControlNet model_ids must be unique. Additionally, they must be compatible with the selected base model.
          - `conditioning_scale` number, required — Strength of the ControlNet's influence on generation. Higher values make the model follow the control signal more strictly. Typical range 0.0-1.0, where 0.0 disables the control and 1.0 applies full control. Default: 1.0
          - `preprocessor` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required — Preprocessor to apply to input frames before feeding to the ControlNet. Must be one of the supported preprocessors.
          - `preprocessor_params` object — Preprocessor parameters
          - `enabled` boolean, required — Whether this ControlNet is active. Disabled ControlNets are not loaded. Default: true
          - `control_guidance_start` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance begins. 0.0 means guidance starts from the beginning.
          - `control_guidance_end` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance ends. 1.0 means guidance continues until the end.
        - `ip_adapter` object — IP adapter — Turns on IP-Adapter style conditioning and is fully hot-swappable. Available for SDXL, SDXL-faceid, SD1.5
          - `type` 'regular' | 'faceid' — Type of IP adapter. Use 'faceid' for SDXL-faceid models, 'regular' for others
          - `enabled` boolean — Whether IP adapter is enabled
          - `scale` number — Strength of IP adapter style conditioning
          - `weight_type` 'linear' | 'ease in' | 'ease out' | 'ease in-out' | 'reverse in-out' | 'weak input' | 'weak output' | 'weak middle' | 'strong middle' | 'style transfer' | 'composition' | 'strong style transfer' | 'style and composition' | 'style transfer precise' | 'composition precise' — Weight interpolation method for IP adapter style conditioning. Controls how the style influence changes throughout the generation process.
        - `ip_adapter_style_image_url` string — HTTPS URL or base64-encoded data URI (data:image/[type];base64,...) of the style image to use. Base64 images are automatically cached and uploaded to storage with content-based deduplication. Maximum size: 5MB. When set, the runtime downloads the image and configures the pipeline; if omitted, a default style image is used. For 'faceid' type, the image must contain a clear face. Available for SDXL, SDXL-faceid, SD1.5
        - `cached_attention` object — Cached attention (StreamV2V) configuration. Enable cached attention to reuse key/value tensors across frames. ⚠️ NOTE: Enabling or disabling cached_attention requires a pipeline reload as it uses a different pipeline.
          - `enabled` boolean, required — Whether this cached attention is active. Enable cached attention to reuse key/value tensors across frames.
          - `max_frames` integer, required — Number of frames retained in the attention cache. Number of historical K/V frames to retain. Limited by TensorRT engine exports.
          - `interval` integer, required — Cadence (number of frames) for refreshing cached key/value tensors i.e How often (in number of frames) to refresh the cache. It is now **frame-based** (not seconds). It accepts integers 1-240, representing how many frames elapse between cache refreshes.
      - SD15
        - `model_id` 'Lykon/dreamshaper-8' | 'prompthero/openjourney-v4', required — Model to use for generation
        - `prompt` union — Text prompt describing the desired image. Can be a single string or weighted list of (prompt, weight) tuples.
          - string
          - array[]
            - unknown[]
              - …
        - `prompt_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple prompts. Slerp provides smoother transitions than linear.
        - `normalize_prompt_weights` boolean — Whether to normalize prompt weights to sum to 1.0 for consistent generation.
        - `normalize_seed_weights` boolean — Whether to normalize seed weights to sum to 1.0 for consistent generation.
        - `negative_prompt` string — Text describing what to avoid in the generated image.
        - `guidance_scale` number — Strength of prompt adherence. Higher values make the model follow the prompt more strictly.
        - `delta` number — Delta sets per-frame denoising progress: lower delta means steadier, less flicker but slower/softer; higher delta means faster, sharper but more flicker/artifacts (often reduce CFG).
        - `num_inference_steps` integer — Builds the full denoising schedule (the 'grid' of possible refinement steps). Changing it changes what each step number (t_index_list value) means. Keep it fixed for a session and only adjust if you're deliberately redefining the schedule; if you do, proportionally remap your t_index_list. Typical range 10-100 with default being 50.
        - `t_index_list` integer[] — The ordered list of step indices from the num_inference_steps schedule to execute per frame. Each index is one model pass, so latency scales with the list length. Higher indices (e.g., 40–49 on a 50-step grid) mainly polish and preserve structure (lower flicker), while lower indices (<20) rewrite structure (more flicker, creative). Values must be non-decreasing, and each between 0 and num_inference_steps. ⚠️ NOTE: t_index_list must have 1–4 elements, non-decreasing, and within [0, num_inference_steps]. The value should not go above 50.
        - `use_safety_checker` boolean — Whether to use safety checker for content filtering
        - `width` integer — Output image width in pixels. Must be divisible by 64 and between 384-1024.
        - `height` integer — Output image height in pixels. Must be divisible by 64 and between 384-1024.
        - `lora_dict` object, nullable — Dictionary mapping LoRA model paths to their weights for fine-tuning the base model.
        - `use_lcm_lora` boolean — Whether to use Latent Consistency Model LoRA for faster inference.
        - `lcm_lora_id` string — Identifier for the LCM LoRA model to use. Example: "latent-consistency/lcm-lora-sdv1-5"
        - `acceleration` 'none' | 'xformers' | 'tensorrt' — Acceleration method for inference. Options: "none", "xformers", "tensorrt". TensorRT provides the best performance but requires engine compilation.
        - `use_denoising_batch` boolean — Whether to process multiple denoising steps in a single batch for efficiency.
        - `do_add_noise` boolean — Whether to add noise to input frames before processing. Enabling this slightly re-noises each frame to improve temporal stability, reduce ghosting/texture sticking, and prevent drift; disabling can yield sharper, lower-latency results but may increase flicker and artifact accumulation over time.
        - `seed` union — Random seed for generation. Can be a single integer or weighted list of (seed, weight) tuples.
          - integer
          - array[]
            - unknown[]
              - …
        - `seed_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple seeds. Slerp provides smoother transitions than linear.
        - `enable_similar_image_filter` boolean — Whether to skip frames that are too similar to the previous output to reduce flicker.
        - `similar_image_filter_threshold` number — Similarity threshold for the image filter. Higher values allow more variation between frames.
        - `similar_image_filter_max_skip_frame` integer — Maximum number of consecutive frames that can be skipped by the similarity filter.
        - `skip_diffusion` boolean — Whether to skip the diffusion process. Any ControlNets or diffusion-only parameters are ignored when enabled. Example use cases: - Stream the output of a preprocessor (e.g. live depth maps or pose skeletons), - Run post-processors like RealESRGAN upscaler on externally provided frames, - Warm a pipeline without paying the diffusion cost. ⚠️ NOTE: skip_diffusion is evaluated at pipeline creation time; switching mid-stream triggers a pipeline reload.
        - `image_preprocessing` object — List of image preprocessor configurations for image processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `image_postprocessing` object — List of image postprocessor configurations for image processing ⚠️ NOTE: realesrgan_trt processor requires a restart to change because it affects resolution.
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_preprocessing` object — List of latent preprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_postprocessing` object — List of latent postprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `controlnets` object[] — List of ControlNet configurations for guided generation. Each ControlNet provides different types of conditioning (pose, edges, depth, etc.). Dynamic updates limited to conditioning_scale changes only; cannot add new ControlNets or change model_id/preprocessor/params without reload.
          - `model_id` 'lllyasviel/control_v11f1p_sd15_depth' | 'lllyasviel/control_v11f1e_sd15_tile' | 'lllyasviel/control_v11p_sd15_canny' | 'daydreamlive/TemporalNet2-stable-diffusion-v1-5', required — ⚠️ NOTE: ControlNet model_ids must be unique. Additionally, they must be compatible with the selected base model.
          - `conditioning_scale` number, required — Strength of the ControlNet's influence on generation. Higher values make the model follow the control signal more strictly. Typical range 0.0-1.0, where 0.0 disables the control and 1.0 applies full control. Default: 1.0
          - `preprocessor` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required — Preprocessor to apply to input frames before feeding to the ControlNet. Must be one of the supported preprocessors.
          - `preprocessor_params` object — Preprocessor parameters
          - `enabled` boolean, required — Whether this ControlNet is active. Disabled ControlNets are not loaded. Default: true
          - `control_guidance_start` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance begins. 0.0 means guidance starts from the beginning.
          - `control_guidance_end` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance ends. 1.0 means guidance continues until the end.
        - `ip_adapter` object — IP adapter — Turns on IP-Adapter style conditioning and is fully hot-swappable. Available for SDXL, SDXL-faceid, SD1.5
          - `type` 'regular' — Type of IP adapter. Use 'faceid' for SDXL-faceid models, 'regular' for others
          - `enabled` boolean — Whether IP adapter is enabled
          - `scale` number — Strength of IP adapter style conditioning
          - `weight_type` 'linear' | 'ease in' | 'ease out' | 'ease in-out' | 'reverse in-out' | 'weak input' | 'weak output' | 'weak middle' | 'strong middle' | 'style transfer' | 'composition' | 'strong style transfer' | 'style and composition' | 'style transfer precise' | 'composition precise' — Weight interpolation method for IP adapter style conditioning. Controls how the style influence changes throughout the generation process.
        - `ip_adapter_style_image_url` string — HTTPS URL or base64-encoded data URI (data:image/[type];base64,...) of the style image to use. Base64 images are automatically cached and uploaded to storage with content-based deduplication. Maximum size: 5MB. When set, the runtime downloads the image and configures the pipeline; if omitted, a default style image is used. For 'faceid' type, the image must contain a clear face. Available for SDXL, SDXL-faceid, SD1.5
        - `cached_attention` object — Cached attention (StreamV2V) configuration. Enable cached attention to reuse key/value tensors across frames. ⚠️ NOTE: Enabling or disabling cached_attention requires a pipeline reload as it uses a different pipeline.
          - `enabled` boolean, required — Whether this cached attention is active. Enable cached attention to reuse key/value tensors across frames.
          - `max_frames` integer, required — Number of frames retained in the attention cache. Number of historical K/V frames to retain. Limited by TensorRT engine exports.
          - `interval` integer, required — Cadence (number of frames) for refreshing cached key/value tensors i.e How often (in number of frames) to refresh the cache. It is now **frame-based** (not seconds). It accepts integers 1-240, representing how many frames elapse between cache refreshes.
    - `name` string — Human-readable name for the stream
    - `output_rtmp_url` string — Custom RTMP URL for stream output destination
  - Scope
    - `pipeline` 'scope', required
    - `params` object, required — Scope pipeline parameters. Accepts any JSON object.
    - `name` string — Human-readable name for the stream
    - `output_rtmp_url` string — Custom RTMP URL for stream output destination

## Response `201`

Default Response

- union
  - StreamDiffusion1
    - `pipeline` 'streamdiffusion', required
    - `params` union, required
      - SDTurbo1
        - `model_id` 'stabilityai/sd-turbo', required
        - `prompt` union — Text prompt describing the desired image. Can be a single string or weighted list of (prompt, weight) tuples.
          - string
          - array[]
            - unknown[]
              - …
        - `prompt_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple prompts. Slerp provides smoother transitions than linear.
        - `normalize_prompt_weights` boolean — Whether to normalize prompt weights to sum to 1.0 for consistent generation.
        - `normalize_seed_weights` boolean — Whether to normalize seed weights to sum to 1.0 for consistent generation.
        - `negative_prompt` string — Text describing what to avoid in the generated image.
        - `guidance_scale` number — Strength of prompt adherence. Higher values make the model follow the prompt more strictly.
        - `delta` number — Delta sets per-frame denoising progress: lower delta means steadier, less flicker but slower/softer; higher delta means faster, sharper but more flicker/artifacts (often reduce CFG).
        - `num_inference_steps` integer — Builds the full denoising schedule (the 'grid' of possible refinement steps). Changing it changes what each step number (t_index_list value) means. Keep it fixed for a session and only adjust if you're deliberately redefining the schedule; if you do, proportionally remap your t_index_list. Typical range 10-100 with default being 50.
        - `t_index_list` integer[] — The ordered list of step indices from the num_inference_steps schedule to execute per frame. Each index is one model pass, so latency scales with the list length. Higher indices (e.g., 40–49 on a 50-step grid) mainly polish and preserve structure (lower flicker), while lower indices (<20) rewrite structure (more flicker, creative). Values must be non-decreasing, and each between 0 and num_inference_steps. ⚠️ NOTE: t_index_list must have 1–4 elements, non-decreasing, and within [0, num_inference_steps]. The value should not go above 50.
        - `use_safety_checker` boolean — Whether to use safety checker for content filtering
        - `width` integer — Output image width in pixels. Must be divisible by 64 and between 384-1024.
        - `height` integer — Output image height in pixels. Must be divisible by 64 and between 384-1024.
        - `lora_dict` object, nullable — Dictionary mapping LoRA model paths to their weights for fine-tuning the base model.
        - `use_lcm_lora` boolean — Whether to use Latent Consistency Model LoRA for faster inference.
        - `lcm_lora_id` string — Identifier for the LCM LoRA model to use. Example: "latent-consistency/lcm-lora-sdv1-5"
        - `acceleration` 'none' | 'xformers' | 'tensorrt' — Acceleration method for inference. Options: "none", "xformers", "tensorrt". TensorRT provides the best performance but requires engine compilation.
        - `use_denoising_batch` boolean — Whether to process multiple denoising steps in a single batch for efficiency.
        - `do_add_noise` boolean — Whether to add noise to input frames before processing. Enabling this slightly re-noises each frame to improve temporal stability, reduce ghosting/texture sticking, and prevent drift; disabling can yield sharper, lower-latency results but may increase flicker and artifact accumulation over time.
        - `seed` union — Random seed for generation. Can be a single integer or weighted list of (seed, weight) tuples.
          - integer
          - array[]
            - unknown[]
              - …
        - `seed_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple seeds. Slerp provides smoother transitions than linear.
        - `enable_similar_image_filter` boolean — Whether to skip frames that are too similar to the previous output to reduce flicker.
        - `similar_image_filter_threshold` number — Similarity threshold for the image filter. Higher values allow more variation between frames.
        - `similar_image_filter_max_skip_frame` integer — Maximum number of consecutive frames that can be skipped by the similarity filter.
        - `skip_diffusion` boolean — Whether to skip the diffusion process. Any ControlNets or diffusion-only parameters are ignored when enabled. Example use cases: - Stream the output of a preprocessor (e.g. live depth maps or pose skeletons), - Run post-processors like RealESRGAN upscaler on externally provided frames, - Warm a pipeline without paying the diffusion cost. ⚠️ NOTE: skip_diffusion is evaluated at pipeline creation time; switching mid-stream triggers a pipeline reload.
        - `image_preprocessing` object — List of image preprocessor configurations for image processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `image_postprocessing` object — List of image postprocessor configurations for image processing ⚠️ NOTE: realesrgan_trt processor requires a restart to change because it affects resolution.
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_preprocessing` object — List of latent preprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_postprocessing` object — List of latent postprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `controlnets` object[] — List of ControlNet configurations for guided generation. Each ControlNet provides different types of conditioning (pose, edges, depth, etc.). Dynamic updates limited to conditioning_scale changes only; cannot add new ControlNets or change model_id/preprocessor/params without reload.
          - `model_id` 'thibaud/controlnet-sd21-openpose-diffusers' | 'thibaud/controlnet-sd21-hed-diffusers' | 'thibaud/controlnet-sd21-canny-diffusers' | 'thibaud/controlnet-sd21-depth-diffusers' | 'thibaud/controlnet-sd21-color-diffusers' | 'daydreamlive/TemporalNet2-stable-diffusion-2-1', required — ⚠️ NOTE: ControlNet model_ids must be unique. Additionally, they must be compatible with the selected base model.
          - `conditioning_scale` number, required — Strength of the ControlNet's influence on generation. Higher values make the model follow the control signal more strictly. Typical range 0.0-1.0, where 0.0 disables the control and 1.0 applies full control. Default: 1.0
          - `preprocessor` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required — Preprocessor to apply to input frames before feeding to the ControlNet. Must be one of the supported preprocessors.
          - `preprocessor_params` object — Additional parameters for the preprocessor. For example, canny edge detection uses 'low_threshold' and 'high_threshold' values.
          - `enabled` boolean, required — Whether this ControlNet is active. Disabled ControlNets are not loaded. Default: true
          - `control_guidance_start` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance begins. 0.0 means guidance starts from the beginning.
          - `control_guidance_end` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance ends. 1.0 means guidance continues until the end.
      - SDXL1
        - `model_id` 'stabilityai/sdxl-turbo', required
        - `prompt` union — Text prompt describing the desired image. Can be a single string or weighted list of (prompt, weight) tuples.
          - string
          - array[]
            - unknown[]
              - …
        - `prompt_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple prompts. Slerp provides smoother transitions than linear.
        - `normalize_prompt_weights` boolean — Whether to normalize prompt weights to sum to 1.0 for consistent generation.
        - `normalize_seed_weights` boolean — Whether to normalize seed weights to sum to 1.0 for consistent generation.
        - `negative_prompt` string — Text describing what to avoid in the generated image.
        - `guidance_scale` number — Strength of prompt adherence. Higher values make the model follow the prompt more strictly.
        - `delta` number — Delta sets per-frame denoising progress: lower delta means steadier, less flicker but slower/softer; higher delta means faster, sharper but more flicker/artifacts (often reduce CFG).
        - `num_inference_steps` integer — Builds the full denoising schedule (the 'grid' of possible refinement steps). Changing it changes what each step number (t_index_list value) means. Keep it fixed for a session and only adjust if you're deliberately redefining the schedule; if you do, proportionally remap your t_index_list. Typical range 10-100 with default being 50.
        - `t_index_list` integer[] — The ordered list of step indices from the num_inference_steps schedule to execute per frame. Each index is one model pass, so latency scales with the list length. Higher indices (e.g., 40–49 on a 50-step grid) mainly polish and preserve structure (lower flicker), while lower indices (<20) rewrite structure (more flicker, creative). Values must be non-decreasing, and each between 0 and num_inference_steps. ⚠️ NOTE: t_index_list must have 1–4 elements, non-decreasing, and within [0, num_inference_steps]. The value should not go above 50.
        - `use_safety_checker` boolean — Whether to use safety checker for content filtering
        - `width` integer — Output image width in pixels. Must be divisible by 64 and between 384-1024.
        - `height` integer — Output image height in pixels. Must be divisible by 64 and between 384-1024.
        - `lora_dict` object, nullable — Dictionary mapping LoRA model paths to their weights for fine-tuning the base model.
        - `use_lcm_lora` boolean — Whether to use Latent Consistency Model LoRA for faster inference.
        - `lcm_lora_id` string — Identifier for the LCM LoRA model to use. Example: "latent-consistency/lcm-lora-sdv1-5"
        - `acceleration` 'none' | 'xformers' | 'tensorrt' — Acceleration method for inference. Options: "none", "xformers", "tensorrt". TensorRT provides the best performance but requires engine compilation.
        - `use_denoising_batch` boolean — Whether to process multiple denoising steps in a single batch for efficiency.
        - `do_add_noise` boolean — Whether to add noise to input frames before processing. Enabling this slightly re-noises each frame to improve temporal stability, reduce ghosting/texture sticking, and prevent drift; disabling can yield sharper, lower-latency results but may increase flicker and artifact accumulation over time.
        - `seed` union — Random seed for generation. Can be a single integer or weighted list of (seed, weight) tuples.
          - integer
          - array[]
            - unknown[]
              - …
        - `seed_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple seeds. Slerp provides smoother transitions than linear.
        - `enable_similar_image_filter` boolean — Whether to skip frames that are too similar to the previous output to reduce flicker.
        - `similar_image_filter_threshold` number — Similarity threshold for the image filter. Higher values allow more variation between frames.
        - `similar_image_filter_max_skip_frame` integer — Maximum number of consecutive frames that can be skipped by the similarity filter.
        - `skip_diffusion` boolean — Whether to skip the diffusion process. Any ControlNets or diffusion-only parameters are ignored when enabled. Example use cases: - Stream the output of a preprocessor (e.g. live depth maps or pose skeletons), - Run post-processors like RealESRGAN upscaler on externally provided frames, - Warm a pipeline without paying the diffusion cost. ⚠️ NOTE: skip_diffusion is evaluated at pipeline creation time; switching mid-stream triggers a pipeline reload.
        - `image_preprocessing` object — List of image preprocessor configurations for image processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `image_postprocessing` object — List of image postprocessor configurations for image processing ⚠️ NOTE: realesrgan_trt processor requires a restart to change because it affects resolution.
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_preprocessing` object — List of latent preprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_postprocessing` object — List of latent postprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `controlnets` object[] — List of ControlNet configurations for guided generation. Each ControlNet provides different types of conditioning (pose, edges, depth, etc.). Dynamic updates limited to conditioning_scale changes only; cannot add new ControlNets or change model_id/preprocessor/params without reload.
          - `model_id` 'xinsir/controlnet-depth-sdxl-1.0' | 'xinsir/controlnet-canny-sdxl-1.0' | 'xinsir/controlnet-tile-sdxl-1.0', required — ⚠️ NOTE: ControlNet model_ids must be unique. Additionally, they must be compatible with the selected base model.
          - `conditioning_scale` number, required — Strength of the ControlNet's influence on generation. Higher values make the model follow the control signal more strictly. Typical range 0.0-1.0, where 0.0 disables the control and 1.0 applies full control. Default: 1.0
          - `preprocessor` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required — Preprocessor to apply to input frames before feeding to the ControlNet. Must be one of the supported preprocessors.
          - `preprocessor_params` object — Preprocessor parameters
          - `enabled` boolean, required — Whether this ControlNet is active. Disabled ControlNets are not loaded. Default: true
          - `control_guidance_start` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance begins. 0.0 means guidance starts from the beginning.
          - `control_guidance_end` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance ends. 1.0 means guidance continues until the end.
        - `ip_adapter` object — IP adapter — Turns on IP-Adapter style conditioning and is fully hot-swappable. Available for SDXL, SDXL-faceid, SD1.5
          - `type` 'regular' | 'faceid', required — Type of IP adapter. Use 'faceid' for SDXL-faceid models, 'regular' for others
          - `enabled` boolean — Whether IP adapter is enabled
          - `scale` number — Strength of IP adapter style conditioning
          - `weight_type` 'linear' | 'ease in' | 'ease out' | 'ease in-out' | 'reverse in-out' | 'weak input' | 'weak output' | 'weak middle' | 'strong middle' | 'style transfer' | 'composition' | 'strong style transfer' | 'style and composition' | 'style transfer precise' | 'composition precise' — Weight interpolation method for IP adapter style conditioning. Controls how the style influence changes throughout the generation process.
        - `ip_adapter_style_image_url` string — HTTPS URL or base64-encoded data URI (data:image/[type];base64,...) of the style image to use. Base64 images are automatically cached and uploaded to storage with content-based deduplication. Maximum size: 5MB. When set, the runtime downloads the image and configures the pipeline; if omitted, a default style image is used. For 'faceid' type, the image must contain a clear face. Available for SDXL, SDXL-faceid, SD1.5
        - `cached_attention` object — Cached attention (StreamV2V) configuration. Enable cached attention to reuse key/value tensors across frames. ⚠️ NOTE: Enabling or disabling cached_attention requires a pipeline reload as it uses a different pipeline.
          - `enabled` boolean, required — Whether this cached attention is active. Enable cached attention to reuse key/value tensors across frames.
          - `max_frames` integer, required — Number of frames retained in the attention cache. Number of historical K/V frames to retain. Limited by TensorRT engine exports.
          - `interval` integer, required — Cadence (number of frames) for refreshing cached key/value tensors i.e How often (in number of frames) to refresh the cache. It is now **frame-based** (not seconds). It accepts integers 1-240, representing how many frames elapse between cache refreshes.
      - SD151
        - `model_id` 'Lykon/dreamshaper-8' | 'prompthero/openjourney-v4', required — Model to use for generation
        - `prompt` union — Text prompt describing the desired image. Can be a single string or weighted list of (prompt, weight) tuples.
          - string
          - array[]
            - unknown[]
              - …
        - `prompt_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple prompts. Slerp provides smoother transitions than linear.
        - `normalize_prompt_weights` boolean — Whether to normalize prompt weights to sum to 1.0 for consistent generation.
        - `normalize_seed_weights` boolean — Whether to normalize seed weights to sum to 1.0 for consistent generation.
        - `negative_prompt` string — Text describing what to avoid in the generated image.
        - `guidance_scale` number — Strength of prompt adherence. Higher values make the model follow the prompt more strictly.
        - `delta` number — Delta sets per-frame denoising progress: lower delta means steadier, less flicker but slower/softer; higher delta means faster, sharper but more flicker/artifacts (often reduce CFG).
        - `num_inference_steps` integer — Builds the full denoising schedule (the 'grid' of possible refinement steps). Changing it changes what each step number (t_index_list value) means. Keep it fixed for a session and only adjust if you're deliberately redefining the schedule; if you do, proportionally remap your t_index_list. Typical range 10-100 with default being 50.
        - `t_index_list` integer[] — The ordered list of step indices from the num_inference_steps schedule to execute per frame. Each index is one model pass, so latency scales with the list length. Higher indices (e.g., 40–49 on a 50-step grid) mainly polish and preserve structure (lower flicker), while lower indices (<20) rewrite structure (more flicker, creative). Values must be non-decreasing, and each between 0 and num_inference_steps. ⚠️ NOTE: t_index_list must have 1–4 elements, non-decreasing, and within [0, num_inference_steps]. The value should not go above 50.
        - `use_safety_checker` boolean — Whether to use safety checker for content filtering
        - `width` integer — Output image width in pixels. Must be divisible by 64 and between 384-1024.
        - `height` integer — Output image height in pixels. Must be divisible by 64 and between 384-1024.
        - `lora_dict` object, nullable — Dictionary mapping LoRA model paths to their weights for fine-tuning the base model.
        - `use_lcm_lora` boolean — Whether to use Latent Consistency Model LoRA for faster inference.
        - `lcm_lora_id` string — Identifier for the LCM LoRA model to use. Example: "latent-consistency/lcm-lora-sdv1-5"
        - `acceleration` 'none' | 'xformers' | 'tensorrt' — Acceleration method for inference. Options: "none", "xformers", "tensorrt". TensorRT provides the best performance but requires engine compilation.
        - `use_denoising_batch` boolean — Whether to process multiple denoising steps in a single batch for efficiency.
        - `do_add_noise` boolean — Whether to add noise to input frames before processing. Enabling this slightly re-noises each frame to improve temporal stability, reduce ghosting/texture sticking, and prevent drift; disabling can yield sharper, lower-latency results but may increase flicker and artifact accumulation over time.
        - `seed` union — Random seed for generation. Can be a single integer or weighted list of (seed, weight) tuples.
          - integer
          - array[]
            - unknown[]
              - …
        - `seed_interpolation_method` 'linear' | 'slerp' — Method for interpolating between multiple seeds. Slerp provides smoother transitions than linear.
        - `enable_similar_image_filter` boolean — Whether to skip frames that are too similar to the previous output to reduce flicker.
        - `similar_image_filter_threshold` number — Similarity threshold for the image filter. Higher values allow more variation between frames.
        - `similar_image_filter_max_skip_frame` integer — Maximum number of consecutive frames that can be skipped by the similarity filter.
        - `skip_diffusion` boolean — Whether to skip the diffusion process. Any ControlNets or diffusion-only parameters are ignored when enabled. Example use cases: - Stream the output of a preprocessor (e.g. live depth maps or pose skeletons), - Run post-processors like RealESRGAN upscaler on externally provided frames, - Warm a pipeline without paying the diffusion cost. ⚠️ NOTE: skip_diffusion is evaluated at pipeline creation time; switching mid-stream triggers a pipeline reload.
        - `image_preprocessing` object — List of image preprocessor configurations for image processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `image_postprocessing` object — List of image postprocessor configurations for image processing ⚠️ NOTE: realesrgan_trt processor requires a restart to change because it affects resolution.
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of image processors to apply
            - `type` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_preprocessing` object — List of latent preprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `latent_postprocessing` object — List of latent postprocessor configurations for latent processing
          - `enabled` boolean — Whether this processor config is active
          - `processors` object[], required — List of latent processors to apply
            - `type` 'latent_feedback', required
            - `enabled` boolean — Whether this processor is active
            - `params` object
        - `controlnets` object[] — List of ControlNet configurations for guided generation. Each ControlNet provides different types of conditioning (pose, edges, depth, etc.). Dynamic updates limited to conditioning_scale changes only; cannot add new ControlNets or change model_id/preprocessor/params without reload.
          - `model_id` 'lllyasviel/control_v11f1p_sd15_depth' | 'lllyasviel/control_v11f1e_sd15_tile' | 'lllyasviel/control_v11p_sd15_canny' | 'daydreamlive/TemporalNet2-stable-diffusion-v1-5', required — ⚠️ NOTE: ControlNet model_ids must be unique. Additionally, they must be compatible with the selected base model.
          - `conditioning_scale` number, required — Strength of the ControlNet's influence on generation. Higher values make the model follow the control signal more strictly. Typical range 0.0-1.0, where 0.0 disables the control and 1.0 applies full control. Default: 1.0
          - `preprocessor` 'blur' | 'canny' | 'depth' | 'depth_tensorrt' | 'external' | 'feedback' | 'hed' | 'lineart' | 'mediapipe_pose' | 'mediapipe_segmentation' | 'openpose' | 'passthrough' | 'pose_tensorrt' | 'realesrgan_trt' | 'sharpen' | 'soft_edge' | 'standard_lineart' | 'temporal_net_tensorrt' | 'upscale', required — Preprocessor to apply to input frames before feeding to the ControlNet. Must be one of the supported preprocessors.
          - `preprocessor_params` object — Preprocessor parameters
          - `enabled` boolean, required — Whether this ControlNet is active. Disabled ControlNets are not loaded. Default: true
          - `control_guidance_start` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance begins. 0.0 means guidance starts from the beginning.
          - `control_guidance_end` number — Fraction of the denoising process (0.0-1.0) when ControlNet guidance ends. 1.0 means guidance continues until the end.
        - `ip_adapter` object — IP adapter — Turns on IP-Adapter style conditioning and is fully hot-swappable. Available for SDXL, SDXL-faceid, SD1.5
          - `type` 'regular', required — Type of IP adapter. Use 'faceid' for SDXL-faceid models, 'regular' for others
          - `enabled` boolean — Whether IP adapter is enabled
          - `scale` number — Strength of IP adapter style conditioning
          - `weight_type` 'linear' | 'ease in' | 'ease out' | 'ease in-out' | 'reverse in-out' | 'weak input' | 'weak output' | 'weak middle' | 'strong middle' | 'style transfer' | 'composition' | 'strong style transfer' | 'style and composition' | 'style transfer precise' | 'composition precise' — Weight interpolation method for IP adapter style conditioning. Controls how the style influence changes throughout the generation process.
        - `ip_adapter_style_image_url` string — HTTPS URL or base64-encoded data URI (data:image/[type];base64,...) of the style image to use. Base64 images are automatically cached and uploaded to storage with content-based deduplication. Maximum size: 5MB. When set, the runtime downloads the image and configures the pipeline; if omitted, a default style image is used. For 'faceid' type, the image must contain a clear face. Available for SDXL, SDXL-faceid, SD1.5
        - `cached_attention` object — Cached attention (StreamV2V) configuration. Enable cached attention to reuse key/value tensors across frames. ⚠️ NOTE: Enabling or disabling cached_attention requires a pipeline reload as it uses a different pipeline.
          - `enabled` boolean, required — Whether this cached attention is active. Enable cached attention to reuse key/value tensors across frames.
          - `max_frames` integer, required — Number of frames retained in the attention cache. Number of historical K/V frames to retain. Limited by TensorRT engine exports.
          - `interval` integer, required — Cadence (number of frames) for refreshing cached key/value tensors i.e How often (in number of frames) to refresh the cache. It is now **frame-based** (not seconds). It accepts integers 1-240, representing how many frames elapse between cache refreshes.
    - `id` string, required — Unique identifier for the stream
    - `stream_key` string, required — Unique key used for streaming to this endpoint
    - `output_stream_url` string — URL where the processed stream output can be accessed
    - `created_at` string, required — ISO timestamp when the stream was created
    - `output_playback_id` string, required — Playback ID for accessing the stream output
    - `name` string, required — Human-readable name of the stream
    - `author` string, required — ID of the user who created this stream
    - `from_playground` boolean, required — Whether this stream was created from the playground interface
    - `gateway_host` string, required — Gateway server hostname handling this stream
    - `is_smoke_test` boolean, required — Whether this is a smoke test stream
    - `whip_url` string, required — WebRTC WHIP URL for stream ingestion
  - Scope1
    - `pipeline` 'scope', required
    - `params` object, required — Scope pipeline parameters. Accepts any JSON object.
    - `id` string, required — Unique identifier for the stream
    - `stream_key` string, required — Unique key used for streaming to this endpoint
    - `output_stream_url` string — URL where the processed stream output can be accessed
    - `created_at` string, required — ISO timestamp when the stream was created
    - `output_playback_id` string, required — Playback ID for accessing the stream output
    - `name` string, required — Human-readable name of the stream
    - `author` string, required — ID of the user who created this stream
    - `from_playground` boolean, required — Whether this stream was created from the playground interface
    - `gateway_host` string, required — Gateway server hostname handling this stream
    - `is_smoke_test` boolean, required — Whether this is a smoke test stream
    - `whip_url` string, required — WebRTC WHIP URL for stream ingestion

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `409` — Default Response
- `429` — Default Response
- `500` — Default Response

---

[API](https://skmtc.dev/daydream/apis/daydream-api-documentation.md) · [All operations](https://skmtc.dev/daydream/apis/daydream-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/daydream/daydream-api-documentation/revisions/3786bf216990/schema)
