3 hours ago
Using your havc_test version the encodibg works.
The speed in fps is shown after about 3m43s.
But you should see at least the frames colorization on the server side.
If you don't see nothing this imply the client is not properly connected to the server, in the last tversionof DiTServer the client connections are logged.
Moreover my torch package version is different from the one that you are using.
On my PC is installed VapoursynthR74_torch_2026.04.21.7z and in this version is missing the plugins folder. My version is still looking for plugins in "vsfilters", but I don't think that this is the problem because the errors in loading the plugins are reported, but you don't see nothing, very strange
Try to delete the files cache *.pyc in vsdeoldify package, maybe there is some misalignment on complied python code.
Dan
I tested your configuration
using this script
But I noted that you was using the local version, not the remote version (encode_mode=0)
Using the local version you need to decrease the max_memory_frames=2
Using the local version with max_memory_frames=10, the client window was plenty of messages like this
Please try using the remote version of HAVC_cmnet2dit()
Thanks,
Dan
The speed in fps is shown after about 3m43s.
But you should see at least the frames colorization on the server side.
If you don't see nothing this imply the client is not properly connected to the server, in the last tversionof DiTServer the client connections are logged.
Moreover my torch package version is different from the one that you are using.
On my PC is installed VapoursynthR74_torch_2026.04.21.7z and in this version is missing the plugins folder. My version is still looking for plugins in "vsfilters", but I don't think that this is the problem because the errors in loading the plugins are reported, but you don't see nothing, very strange

Try to delete the files cache *.pyc in vsdeoldify package, maybe there is some misalignment on complied python code.
Dan
I tested your configuration
PS D:\PProjects\DiTServerRPC> D:\PProjects\DiTServerRPC\.venv\Scripts\python.exe dit_rpc_server.py --load-pipeline --pipeline-config qwen_config_int4.json
2026-05-26 20:55:55,917 [INFO] module_dir : D:\PProjects\DiTServerRPC
2026-05-26 20:55:55,917 [INFO] dit_colorize_main.py : found
2026-05-26 20:55:55,918 [INFO] Loading pipeline from config: qwen_config_int4.json
2026-05-26 20:55:55,918 [INFO] Loading pipeline: nunchaku-qwen int4 r32 steps=4
Loading SVDQuant INT4 transformer from: nunchaku-ai/nunchaku-qwen-image-edit-2509/lightning-251115/svdq-int4_r32-qwen-image-edit-2509-lightning-4steps-251115.safetensors
The config attributes {'pooled_projection_dim': 768} were passed to NunchakuQwenImageTransformer2DModel, but are not expected and will be ignored. Please verify your config.json configuration file.
Loading checkpoint shards: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:00<00:00, 99.99it/s]
Loading pipeline components...: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████| 6/6 [00:00<00:00, 7.56it/s]
Optimizing VRAM ...
D:\PProjects\DiTServerRPC\.venv\Lib\site-packages\nunchaku\models\transformers\transformer_qwenimage.py:620: UserWarning: Skipping moving the model to GPU as offload is enabled
warn("Skipping moving the model to GPU as offload is enabled", UserWarning)
2026-05-26 20:56:15,379 [INFO] Pipeline loaded successfully.
2026-05-26 20:56:15,379 [INFO] HAVC Colorize RPC Server listening on 127.0.0.1:8765
2026-05-26 20:56:15,379 [INFO] Press Ctrl+C to stop.
2026-05-26 20:58:30,030 [INFO] Connection opened 127.0.0.1:53531
2026-05-26 20:58:30,032 [INFO] Connection opened 127.0.0.1:53532
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.06s/it]
D:\PProjects\DiTServerRPC\.venv\Lib\site-packages\diffusers\image_processor.py:148: RuntimeWarning: invalid value encountered in cast
images = (images * 255).round().astype("uint8")
2026-05-26 20:58:42,149 [INFO] colorize_frame_shm: 12.10s
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.02s/it]
2026-05-26 20:58:56,530 [INFO] colorize_frame_pair_shm: 10.87s (5.44s/frame)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.02s/it]
2026-05-26 20:59:04,978 [INFO] colorize_frame_pair_shm: 8.13s (4.07s/frame)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.05s/it]
2026-05-26 20:59:13,452 [INFO] colorize_frame_pair_shm: 8.21s (4.10s/frame)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.03s/it]
2026-05-26 20:59:21,939 [INFO] colorize_frame_pair_shm: 8.16s (4.08s/frame)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.08s/it]
2026-05-26 21:01:11,130 [INFO] colorize_frame_pair_shm: 9.12s (4.56s/frame)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.03s/it]
2026-05-26 21:02:31,841 [INFO] colorize_frame_pair_shm: 8.43s (4.21s/frame)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.03s/it]
2026-05-26 21:02:48,581 [INFO] colorize_frame_pair_shm: 8.35s (4.17s/frame)
2026-05-26 21:02:59,014 [INFO] Connection 127.0.0.1:53531 closed by the client (ConnectionResetError: [WinError 10054] Connessione in corso interrotta forzatamente dall'host remoto)
2026-05-26 21:02:59,014 [INFO] Connection 127.0.0.1:53532 closed by the client (ConnectionResetError: [WinError 10054] Connessione in corso interrotta forzatamente dall'host remoto)using this script
# Imports
import sys
import os
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Limit frame cache to 16384MB
core.max_cache_size = 16384
# Import scripts folder
scriptPath = 'D:/Programs/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# loading plugins
core.std.LoadPlugin(path="D:/Programs/Hybrid/64bit/vsfilters/SourceFilter/DGDecNV/DGDecodeNV_AVX2.dll")
# Import scripts
import vsdeoldify as havc
import validate
# Source: 'D:\PProjects\vs-deoldify_dev\samples\sample5\sample5_bw.mp4'
# clip current meta; color space: YUV420P8, bit depth: 8, resolution: 720x544, fps: 25, color matrix: 470bg, color primaries: Unspecific, color transfer: BT.709, yuv luminance scale: limited, scanorder: progressive, full height: true (Source)
# Loading 'D:\PProjects\vs-deoldify_dev\samples\sample5\sample5_bw.mp4' using DGSource
clip = core.dgdecodenv.DGSource("D:/PProjects/vs-deoldify_dev/samples/sample5/mp4_sample5_bw.dgi") # 25 fps, scanorder: progressive
frame = clip.get_frame(0)
# setting color matrix to 470bg.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT470_BG)
# setting color transfer (vs.TRANSFER_BT709), if it is not set.
if validate.transferIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT709)
# setting color primaries info (to vs.PRIMARIES_BT470_BG), if it is not set.
if validate.primariesIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT470_BG)
# setting color range to TV (limited) range.
prop_name = '_Range' if core.core_version.release_major >= 74 else '_ColorRange'
clip = core.std.SetFrameProps(clip=clip, **{prop_name: vs.RANGE_LIMITED})
# making sure frame rate is set to 25fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# making sure the detected scan type is set (detected: progressive)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# colorize using CMNet with external DiT (HAVC)
clip = havc.HAVC_cmnet2dit(clip, encode_mode=0, max_memory_frames=10, dit_engine_params={"host": "127.0.0.1", "port": 8765, "model_precision": "int4"})
# adjusting output color from YUV420P8 to YUV420P10 for x265Model
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10)
# set output frame rate to 25fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# output
clip.set_output()But I noted that you was using the local version, not the remote version (encode_mode=0)
Using the local version you need to decrease the max_memory_frames=2
clip = havc.HAVC_cmnet2dit(clip, encode_mode=1, max_memory_frames=2, dit_engine_params={"host": "127.0.0.1", "port": 8765, "model_precision": "int4"})Using the local version with max_memory_frames=10, the client window was plenty of messages like this
[DEBUG] VRAM low (791 MB free) at frame 406: sliding 70% of permanent memory
VRAM critical (0 MB free) at frame 407: rebuilding inference core (frame_count was 10/1000)
[DEBUG] VRAM low (799 MB free) at frame 417: sliding 70% of permanent memory
VRAM critical (0 MB free) at frame 418: rebuilding inference core (frame_count was 10/1000)
[DEBUG] VRAM low (837 MB free) at frame 428: sliding 70% of permanent memory
VRAM critical (0 MB free) at frame 429: rebuilding inference core (frame_count was 10/1000)
[DEBUG] VRAM low (831 MB free) at frame 439: sliding 70% of permanent memory
VRAM critical (0 MB free) at frame 440: rebuilding inference core (frame_count was 10/1000)
........Please try using the remote version of HAVC_cmnet2dit()
clip = havc.HAVC_cmnet2dit(clip, encode_mode=0, max_memory_frames=10, dit_engine_params={"host": "127.0.0.1", "port": 8765, "model_precision": "int4"})Thanks,
Dan

