SadTalker full / crop / resize comparison — tested 4 October 2026

Same rented NVIDIA RTX 4090 and running ComfyUI as the still-mode test.
One warm-up and three measured renders per mode. Further failure probes stopped at owner request to reduce GPU rental time. Measured rounds rotate:
full/crop/resize; crop/resize/full; resize/full/crop.
All use identical source bytes and audio bytes, size512, stillOFF, GFPGAN,
batch2, expression1.0, pose0. Four threads in OMP/MKL/OpenBLAS/NumExpr.
Server execution_start -> execution_success includes input loading, worker/model
startup, inference and export; excludes queue wait and installation.
Input filenames are fresh per run to avoid ComfyUI cache hits. Output hashes
and native execution records included. No seed control in the template.

The three-way display uses the first measured run of each mode, padded and
scaled into 512px panels, with one audio track. Raw individual files retain
actual output dimensions; size512 describes face rendering, not final dimensions.

No-face full and crop probes failed at facial landmark extraction. Resize probe stopped with no verified result retained. No error retries. These are separate from portrait timing medians. All 12 portrait runs succeeded.

ComfyUI: import preprocess-comparison.json, upload source inputs, then Run.
API: place source inputs in ComfyUI/input, wrap one mode-api.json as {"prompt":graph}
and POST to your server /prompt. Supplied stable filenames reproduce settings;
repeats can be cached. Per-run graphs contain fresh benchmark filenames.
The CPU launcher requires the isolated /opt/sadtalker-venv worker from the guide.
chmod +x /opt/sadtalker-venv/bin/python-preprocess-test
Back up custom_nodes/comfyui-sadtalker/config.json; point its python field at
this launcher for timing, then restore the original path afterward.
Adjust the launcher exec path if your worker Python lives elsewhere.

Pages: https://sadtalker.ai/comfyui and /sadtalker-preprocess-comparison
