Cache Set¶
Class: CacheSetBlockV1
Source: inference.core.workflows.core_steps.cache.cache_set.v1.CacheSetBlockV1
Store a value in an in-memory cache by key, using the image's video identifier as a namespace to enable data sharing between workflow steps, caching intermediate results, and avoiding redundant computations within the same workflow execution context.
How This Block Works¶
This block stores values in an in-memory cache that can be later retrieved using the Cache Get block. The block:
- Receives image, cache key, and value to store:
- Takes an input image to determine the cache namespace
- Receives a cache key (string) identifying the cache entry
- Receives a value (any data type) to store in the cache
- Determines cache namespace:
- Extracts video identifier from the image's video metadata
- Uses the video identifier as the cache namespace (isolates cache entries per video/stream)
- Falls back to "default" namespace if no video identifier is present
- Stores value in cache:
- Accesses the in-memory cache dictionary for the determined namespace
- Stores the value using the specified key in the cache
- Overwrites any existing value with the same key (cache keys are unique within a namespace)
- Returns stored value:
- Outputs the stored value as a pass-through (same value that was stored)
- The output can be used by subsequent workflow steps
The cache is namespaced by video identifier, meaning different videos or streams have separate cache storage. This allows workflows processing multiple videos to maintain separate caches for each video. The cache is stored in memory and is cleared when the workflow execution completes or when the block is destroyed. Cache Set must be used in conjunction with Cache Get - values are stored with Cache Set and retrieved with Cache Get using the same key and namespace (determined by the same video identifier).
Common Use Cases¶
- Shared State Between Steps: Store intermediate results in one workflow step for retrieval in another step (e.g., store detection results for later analysis, cache classification predictions for filtering, save metadata for subsequent blocks), enabling state sharing workflows
- Avoid Redundant Computations: Cache expensive computation results for reuse across multiple workflow steps (e.g., cache model predictions, store processed images, save transformation results), enabling computation caching workflows
- Video Frame Context: Maintain context across video frames by storing frame-specific data (e.g., cache previous frame detections, store frame sequence metadata, save tracking state), enabling frame context workflows
- Conditional Workflow Logic: Store decision results or flags that control workflow execution in subsequent steps (e.g., cache filtering decisions, store validation results, save workflow state), enabling conditional execution workflows
- Data Aggregation: Accumulate data across workflow steps by storing values in cache (e.g., store detection counts, cache statistics, save result collections), enabling data aggregation workflows
- Temporary Storage: Use cache as temporary storage for values that need to be accessed by multiple workflow steps without passing through the workflow graph (e.g., store cross-step data, maintain temporary state, share non-linear workflow data), enabling temporary storage workflows
Connecting to Other Blocks¶
This block stores values in cache and passes through the stored value:
- Before Cache Get block to store values that will be retrieved later (e.g., store detections for retrieval, cache predictions for later use, save metadata for access), enabling cache storage workflows
- After model or processing blocks to cache their outputs for later use (e.g., cache model predictions, store processed results, save computation outputs), enabling result caching workflows
- In workflow branches to store shared values accessible from parallel or conditional execution paths (e.g., store shared state, cache common results, save branch data), enabling branch coordination workflows
- Before blocks that need cached data to store values that will be used by subsequent blocks (e.g., store inputs for later processing, cache data for filtering, save values for analysis), enabling cached data workflows
- In conditional logic workflows to store flags or decisions for later use (e.g., store validation results, cache decision flags, save conditional state), enabling conditional logic workflows
- With video processing workflows to maintain frame-specific or video-specific cache namespaces (e.g., store frame context, cache video-specific data, save stream-specific values), enabling video context workflows
Requirements¶
This block requires an input image (used to determine the cache namespace via video identifier), a cache key (string) to identify the cache entry, and a value (any data type) to store. The block only works in LOCAL execution mode - it will raise a NotImplementedError if used in other execution modes. Values stored in the cache can be retrieved later using the Cache Get block with the same key and namespace (same video identifier). The cache is stored in memory and is automatically cleared when the workflow execution completes. The cache is namespaced by video identifier, so different videos have separate cache storage. If a key already exists in the cache, storing a new value with the same key will overwrite the previous value. The stored value can be any data type (strings, numbers, lists, detections, images, etc.).
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/cache_set@v1to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
key |
str |
Cache key (string) identifying the cache entry where the value will be stored. The key must be used with the same value when retrieving the value with the Cache Get block. Keys are case-sensitive and must be exact matches. If a key already exists in the cache, storing a new value will overwrite the previous value. Use descriptive keys to identify different cached values (e.g., 'detections', 'classification_result', 'frame_metadata').. | ✅ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to Cache Set in version v1.
- inputs:
Detections Stabilizer,Velocity,Keypoint Detection Model,Anthropic Claude,Instance Segmentation Model,SIFT Comparison,Google Vision OCR,Circle Visualization,Detections Filter,Google Gemini,Detections Merge,Byte Tracker,Roboflow Vision Events,Line Counter Visualization,VLM As Detector,Morphological Transformation,LMM,Model Comparison Visualization,Buffer,MoonshotAI Kimi,Segment Anything 2 Model,Cache Set,Instance Segmentation Model,Twilio SMS/MMS Notification,Detections Classes Replacement,Twilio SMS Notification,SAM 3,S3 Sink,Local File Sink,Halo Visualization,Camera Focus,SIFT Comparison,Semantic Segmentation Model,Mask Visualization,Path Deviation,MoonshotAI Kimi,Text Display,Image Slicer,Absolute Static Crop,Inner Workflow,VLM As Classifier,Path Deviation,GLM-OCR,Roboflow Custom Metadata,Detections Combine,Dynamic Crop,Mask Area Measurement,Cosine Similarity,Model Monitoring Inference Aggregator,Contrast Enhancement,Motion Detection,Webhook Sink,SAM2 Video Tracker,Color Visualization,Object Detection Model,YOLO-World Model,Google Gemini,Single-Label Classification Model,Anthropic Claude,QR Code Generator,Clip Comparison,Environment Secrets Store,Qwen3.5,Bounding Box Visualization,Florence-2 Model,VLM As Classifier,Overlap Filter,Image Threshold,Cache Get,Line Counter,Relative Static Crop,Qwen3.5-VL,Moondream2,Perception Encoder Embedding Model,Llama 3.2 Vision,Time in Zone,Image Convert Grayscale,Byte Tracker,Keypoint Visualization,Google Gemma,Image Stack,Morphological Transformation,Email Notification,Rate Limiter,Corner Visualization,Stitch OCR Detections,Detections Transformation,OpenAI,Background Color Visualization,JSON Parser,Single-Label Classification Model,Identify Changes,Ellipse Visualization,Stability AI Outpainting,Data Aggregator,EasyOCR,OCR Model,Perspective Correction,Stitch OCR Detections,Instance Segmentation Model,Time in Zone,Background Subtraction,Template Matching,Pixel Color Count,Stability AI Inpainting,Distance Measurement,Barcode Detection,Image Slicer,Mask Edge Snap,Identify Outliers,Image Contours,Qwen 3.6 API,Single-Label Classification Model,CLIP Embedding Model,Depth Estimation,Stitch Images,Grid Visualization,OpenAI,Clip Comparison,Dominant Color,Continue If,Qwen-VL,SAM 3,Keypoint Detection Model,Multi-Label Classification Model,SIFT,SmolVLM2,Anthropic Claude,Roboflow Dataset Upload,Multi-Label Classification Model,Llama 3.2 Vision,PTZ Tracking (ONVIF),Object Detection Model,Email Notification,Seg Preview,Instance Segmentation Model,Overlap Analysis,Time in Zone,OpenRouter,Qwen3-VL,Per-Class Confidence Filter,Google Gemma API,Stability AI Image Generation,Heatmap Visualization,Contrast Equalization,Property Definition,Roboflow Dataset Upload,Slack Notification,Detection Offset,OpenAI,SAM 3,Expression,Image Blur,Keypoint Detection Model,Detections Consensus,Qwen2.5-VL,Dot Visualization,Polygon Zone Visualization,Label Visualization,Icon Visualization,LMM For Classification,Object Detection Model,OC-SORT Tracker,Blur Visualization,Delta Filter,Bounding Rectangle,Dimension Collapse,Trace Visualization,Size Measurement,Dynamic Zone,Florence-2 Model,Camera Focus,QR Code Detection,CogVLM,Pixelate Visualization,Polygon Visualization,Line Counter,Classification Label Visualization,Multi-Label Classification Model,Gaze Detection,Camera Calibration,Google Gemini,Image Preprocessing,Semantic Segmentation Model,Halo Visualization,Byte Tracker,Roboflow Asset Library Attributes,ByteTrack Tracker,Reference Path Visualization,Detections Stitch,CSV Formatter,VLM As Detector,Triangle Visualization,Crop Visualization,Qwen 3.5 API,Detection Event Log,OpenAI-Compatible LLM,First Non Empty Or Default,Detections List Roll-Up,BoT-SORT Tracker,SORT Tracker,Polygon Visualization,OpenAI - outputs:
Detections Stabilizer,Distance Measurement,Keypoint Detection Model,Velocity,Instance Segmentation Model,SIFT Comparison,Anthropic Claude,Google Vision OCR,Circle Visualization,Barcode Detection,Mask Edge Snap,Image Slicer,Google Gemini,Detections Filter,Identify Outliers,Image Contours,Qwen 3.6 API,Single-Label Classification Model,Detections Merge,CLIP Embedding Model,Byte Tracker,Roboflow Vision Events,Depth Estimation,Line Counter Visualization,VLM As Detector,Stitch Images,Morphological Transformation,LMM,Model Comparison Visualization,Buffer,Segment Anything 2 Model,MoonshotAI Kimi,Grid Visualization,Cache Set,Instance Segmentation Model,Twilio SMS/MMS Notification,OpenAI,Detections Classes Replacement,Clip Comparison,Twilio SMS Notification,Continue If,Dominant Color,SAM 3,Qwen-VL,S3 Sink,SAM 3,Halo Visualization,SIFT Comparison,Keypoint Detection Model,Semantic Segmentation Model,Multi-Label Classification Model,Local File Sink,Camera Focus,Mask Visualization,SmolVLM2,SIFT,Path Deviation,MoonshotAI Kimi,Anthropic Claude,Roboflow Dataset Upload,Image Slicer,Text Display,Multi-Label Classification Model,Absolute Static Crop,Llama 3.2 Vision,Inner Workflow,VLM As Classifier,PTZ Tracking (ONVIF),Path Deviation,GLM-OCR,Object Detection Model,Email Notification,Seg Preview,Dynamic Crop,Detections Combine,Roboflow Custom Metadata,Instance Segmentation Model,Mask Area Measurement,Overlap Analysis,Time in Zone,OpenRouter,Cosine Similarity,Model Monitoring Inference Aggregator,Contrast Enhancement,Motion Detection,Qwen3-VL,Per-Class Confidence Filter,Webhook Sink,Google Gemma API,SAM2 Video Tracker,Stability AI Image Generation,Heatmap Visualization,Color Visualization,Contrast Equalization,Object Detection Model,YOLO-World Model,Property Definition,Google Gemini,Roboflow Dataset Upload,Single-Label Classification Model,Slack Notification,Anthropic Claude,QR Code Generator,Detection Offset,Clip Comparison,OpenAI,Qwen3.5,Bounding Box Visualization,SAM 3,VLM As Classifier,Florence-2 Model,Overlap Filter,Image Blur,Expression,Keypoint Detection Model,Detections Consensus,Qwen2.5-VL,Dot Visualization,Polygon Zone Visualization,Label Visualization,Icon Visualization,Image Threshold,Cache Get,LMM For Classification,Object Detection Model,OC-SORT Tracker,Line Counter,Blur Visualization,Bounding Rectangle,Delta Filter,Relative Static Crop,Dimension Collapse,Trace Visualization,Size Measurement,Moondream2,Qwen3.5-VL,Dynamic Zone,Perception Encoder Embedding Model,Florence-2 Model,Camera Focus,QR Code Detection,CogVLM,Pixelate Visualization,Llama 3.2 Vision,Image Convert Grayscale,Byte Tracker,Keypoint Visualization,Time in Zone,Polygon Visualization,Line Counter,Google Gemma,Classification Label Visualization,Image Stack,Multi-Label Classification Model,Morphological Transformation,Gaze Detection,Camera Calibration,Google Gemini,Email Notification,Image Preprocessing,Semantic Segmentation Model,Rate Limiter,Corner Visualization,Stitch OCR Detections,Detections Transformation,Halo Visualization,Byte Tracker,Roboflow Asset Library Attributes,ByteTrack Tracker,Reference Path Visualization,OpenAI,Identify Changes,JSON Parser,Single-Label Classification Model,Background Color Visualization,Detections Stitch,Ellipse Visualization,CSV Formatter,Stability AI Outpainting,Data Aggregator,VLM As Detector,EasyOCR,Triangle Visualization,OCR Model,Crop Visualization,Perspective Correction,Qwen 3.5 API,Detection Event Log,Stitch OCR Detections,OpenAI-Compatible LLM,First Non Empty Or Default,BoT-SORT Tracker,Detections List Roll-Up,Instance Segmentation Model,SORT Tracker,Time in Zone,Polygon Visualization,Background Subtraction,Template Matching,Pixel Color Count,OpenAI,Stability AI Inpainting
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Cache Set in version v1 has.
Bindings
-
input
image(image): Input image used to determine the cache namespace. The block extracts the video identifier from the image's video metadata and uses it as the cache namespace. If no video identifier is present, the block uses 'default' as the namespace. The namespace isolates cache entries so different videos or streams have separate cache storage. Use the same image (with the same video identifier) for both Cache Set and Cache Get blocks to access the same cache namespace..key(string): Cache key (string) identifying the cache entry where the value will be stored. The key must be used with the same value when retrieving the value with the Cache Get block. Keys are case-sensitive and must be exact matches. If a key already exists in the cache, storing a new value will overwrite the previous value. Use descriptive keys to identify different cached values (e.g., 'detections', 'classification_result', 'frame_metadata')..value(Union[*,list_of_values]): Value to store in the cache. Can be any data type including strings, numbers, lists, detections, images, classifications, or any other workflow data type. The value is stored in memory and can be retrieved later using the Cache Get block with the same key and namespace. The value is also passed through as the block's output, allowing it to be used by subsequent workflow steps..
-
output
output(*): Equivalent of any element.
Example JSON definition of step Cache Set in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/cache_set@v1",
"image": "$inputs.image",
"key": "my_cache_key",
"value": "any_value"
}