Video transforms
Reference for the video transforms Dreadnode ships for multimodal red teaming - frame injection, distributed payloads and overlays, temporal ordering and sampling, and temporal distortion effects.
Video transforms operate on the frame sequence, so they cover both per-frame spatial edits and temporal (frame-ordering) manipulations. A request refused as text may be complied with when it is distributed across video frames.
Frame injection
Section titled “Frame injection”| Transform | What it does | Key params |
|---|---|---|
video_frame_inject | Embed a payload in frames (stego/overlay/subliminal) | payload, method, frame_interval |
subliminal_frame | Insert a brief flash frame carrying text | payload, insert_at_frame |
keyframe_replace | Replace a single (sampled) frame with a payload frame | payload, frame_index |
scene_cut_inject | Splice a run of payload frames at a cut | payload, index, n_frames |
replace_with_color_frames | Overwrite a run of frames with solid color | start, count, color |
video_metadata_inject | Inject into a metadata field | payload, field |
Distributed payload and overlays
Section titled “Distributed payload and overlays”| Transform | What it does | Key params |
|---|---|---|
per_frame_text_scroll | Scroll a payload across frames (marquee) | payload, speed_px |
ghost_overlay | Alpha-blend a faint payload across all frames | payload/overlay, opacity |
letterbox_caption | Draw a letterbox bar with static caption | caption, position |
Temporal ordering and sampling
Section titled “Temporal ordering and sampling”| Transform | What it does | Key params |
|---|---|---|
temporal_shuffle | Reorder frames (whole or windowed) | window, seed |
frame_dropout | Drop frames (hold or remove) | drop_ratio, mode |
frame_reverse | Play the sequence backwards | - |
freeze_frame | Repeat one frame to stall | frame_index, hold |
loop_frames | Concatenate the sequence to itself | count |
frame_rate_up / frame_rate_down | Duplicate or decimate frames | factor |
Temporal distortion
Section titled “Temporal distortion”| Transform | What it does | Key params |
|---|---|---|
frame_brightness_flicker | Per-frame brightness flicker | depth, period_frames |
strobe | Replace every Nth frame with a flash | period, color |
rolling_temporal_jitter | Horizontal shift ramping frame-to-frame | max_shift |
motion_smear | Blend each frame with its predecessor | weight |
frame_interpolate_blend | Insert cross-fade frames | steps |
temporal_noise | Independent per-frame noise | scale, seed |
frames_from_image_transform | Lift any image transform to all frames (SDK-only) | image_transform, frame_interval |
from dreadnode.transforms import image, video
# Concise video-attack stack: sampled-keyframe swap + distributed payload + temporal disruption.transforms = [ video.keyframe_replace("INJECT", frame_index=0), video.per_frame_text_scroll("secret instruction"), video.temporal_shuffle(seed=0), video.frames_from_image_transform(image.fog()), # apply an image corruption to every frame]Additional temporal effects
Section titled “Additional temporal effects”| Transform | What it does | Key params |
|---|---|---|
frame_jitter | Independent random spatial shift per frame (shake) | max_shift, seed |
color_flicker | Cycle a per-frame hue shift (chromatic flicker) | depth, period_frames |
stutter | Randomly repeat frames (judder) | repeat_ratio, seed |
reverse_frame_segments | Reverse frame order within fixed windows | segment |
speed_ramp | Non-uniform resampling: slow start, fast end | - |
pip_inject | Composite a small picture-in-picture payload panel | payload, position, size_ratio |
See Transforms for how to apply transforms with any attack.