When a filter is applied, source over compositing resulting in (unexpected behavior) filter bleeding into the background (the color of the background image is changing to gray). I had to use CIBlendWithAlphaMask setting the foreground image as the mask to work around this issue.
CIFilter *tonalFilter = [CIFilter filterWithName:@"CIPhotoEffectTonal"];
[tonalFilter setValue:filterImage forKey:kCIInputImageKey];
video1FilteredImage = [tonalFilter valueForKey:@"outputImage"];
CIFilter *colorGenerator = [CIFilter filterWithName:@"CIConstantColorGenerator"];
CIColor *inputColor = [[CIColor alloc] initWithColor:currentInstruction.compositionBackgroundColor];
[colorGenerator setValue:inputColor forKey:@"inputColor"];
CIImage *colorBackgroundImage = [colorGenerator valueForKey:@"outputImage"];
CIFilter *sourceOverCompositing = [CIFilter filterWithName:@"CISourceOverCompositing"];
[sourceOverCompositing setValue:video1FilteredImage forKey:kCIInputImageKey];
[sourceOverCompositing setValue:colorBackgroundImage forKey:kCIInputBackgroundImageKey];
video1FilteredImage = [sourceOverCompositing valueForKey:@"outputImage"];