I tried a few things.
“Process” - “Show Export Command” to see what options are set for FFMPEG.
In this test case, since the video is in 640x480 SD resolution, BT601 is generally applied.
If it is not to be enlarged, it must be output in BT601, and if it is to be enlarged to HD resolution, it must be set to BT709.
Also, according to FFMPEG specifications, if BT709 is to be used, “scale=out_color_matrix=bt709” must be set at the end of the filter.
Test 1 Noise reduction only SD(BT601) → SD(BT601)
ffmpeg -hide_banner -nostdin -y -nostats -i Z:/MVI_2232.AVI -sws_flags spline+accurate_rnd+full_chroma_int -color_trc 2 -colorspace 5 -color_primaries 2 -filter_complex tvai_up=model=prob-3:preblur=0:noise=0:details=0:halo=0:blur=0:compression=0:estimate=20:device=0:vram=1:instances=1,scale=out_color_matrix=bt709 -c:v prores_ks -profile:v 3 -vendor apl0 -bits_per_mb 8000 -pix_fmt yuv422p10le -map_metadata 0 -movflags frag_keyframe+empty_moov+delay_moov+use_metadata_tags+write_colr -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -c:a aac -b:a 192k -ac 2 -metadata videoai=Enhanced using prob-3 auto with recover details at 0, dehalo at 0, reduce noise at 0, sharpen at 0, revert compression at 0, and anti-alias/deblur at 0 Z:/MVI_2232_prob3_temp.mov
The out_color_matrix=bt709, which should not be set, is set.
Test 2 Noise reduction & enlargement SD(BT601) → HD(BT709)
ffmpeg -hide_banner -nostdin -y -nostats -i Z:/MVI_2232.AVI -sws_flags spline+accurate_rnd+full_chroma_int -color_trc 2 -colorspace 5 -color_primaries 2 -filter_complex tvai_up=model=prob-3:preblur=0:noise=0:details=0:halo=0:blur=0:compression=0:estimate=20:device=0:vram=1:instances=1,scale=out_color_matrix=bt709 -c:v prores_ks -profile:v 1 -vendor apl0 -bits_per_mb 8000 -pix_fmt yuv422p10le -map_metadata 0 -movflags frag_keyframe+empty_moov+delay_moov+use_metadata_tags+write_colr -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -c:a copy -metadata videoai=Enhanced using prob-3 auto with recover details at 0, dehalo at 0, reduce noise at 0, sharpen at 0, revert compression at 0, and anti-alias/deblur at 0 Z:/MVI_2232_prob3_temp.mov
out_color_matrix=bt709 is added.
Test 3 Noise Removal & Enlargement SD(BT601) → HD(BT709) Encoder is changed
ffmpeg -hide_banner -nostdin -y -nostats -i Z:/MVI_2232.AVI -sws_flags spline+accurate_rnd+full_chroma_int -color_trc 2 -colorspace 5 -color_primaries 2 -filter_complex tvai_up=model=prob-3:scale=0:w=3840:h=2160:preblur=0:noise=0:details=0:halo=0:blur=0:compression=0:estimate=20:device=0:vram=1:instances=1,scale=w=3840:h=2160:flags=lanczos:threads=0:force_original_aspect_ratio=decrease,pad=3840:2160:-1:-1:color=black -c:v hevc_amf -profile:v main -profile_tier high -pix_fmt yuv420p -b:v 0 -map_metadata 0 -movflags frag_keyframe+empty_moov+delay_moov+use_metadata_tags+write_colr -map_metadata:s:v 0:s:v -map_metadata:s:a 0:s:a -c:a aac -b:a 192k -ac 2 -metadata videoai=Enhanced using prob-3 auto with recover details at 0, dehalo at 0, reduce noise at 0, sharpen at 0, revert compression at 0, and anti-alias/deblur at 0. Changed resolution to 3840x2160 Z:/MVI_2232_prob3_temp.mov
out_color_matrix=bt709 has disappeared.
Simply put, the GUI side of TVAI is not properly configured for input and output color space.
I have requested this many times before, but TVAI is too careless when it comes to color.
It should be possible to know the input color space and output color space on the GUI.