Skip to content

Troubleshooting ​

Start with the smallest check that reproduces the problem:

bash
vflash doctor                       # GPUs this process can see
vflash plan <profile> --gpu 0       # profile/device match, no weights loaded

For a complete-pipeline request, validate_request runs the same admission rules as generate without CUDA or model loading (example).

Request rejected before loading ​

Vflash never shrinks, re-times or reroutes a request to make it fit. The message names the rule:

Message mentionsCauseFix
width/height, multiple of 32, aspect ratioCanvas outside 32-pixel steps or 1:4–4:1Choose a valid canvas.
more than 1,048,576 pixels / native HDAbove 1 MP without the hybrid image-conditioned pathUse the hybrid model with a first-frame or reference image.
long edge 2720 / pixel-frame budgetwidth × height × model_frames > 2048² × 124, or a long edge above 2720Shorten the request (4 MP is a five-second request) or lower the canvas.
6–15 s requires image conditioningLong duration on T2VA or a non-hybrid profileUse hybrid I2VA/FL2VA/Ref2VA.
resident I2VA supports…weight_residency="resident" outside its envelope (SM90: 1536×864; SM120: the pixel-frame budget; SM90 uses one first frame; SM120 hybrid also accepts L2VA, FL2VA and image Ref within the joint budget)Use block-ring for that request.
mode differs from the prepared profilee.g. references sent to a keyframe profilePrepare the profile for that mode.

Startup and assets ​

SymptomCheckAction
No GPU listednvidia-smi; container device selectionExpose only the intended GPU(s); in partitioned containers set VFLASH_DEVICE_DISCOVERY=cuda-visible.
Profile/device mismatchCompute capability and memory reported by doctorChoose the matching profile; renaming does not convert compiled assets.
Prepared assets rejectedFiles moved or changed after prepare-pipelineRe-run prepare-pipeline against the final read-only snapshot.
trust_local_code errorThe official decoder code needs explicit trustPass --trust-local-code / trust_local_code=True after reviewing the snapshot.
Sol or Veda missingpython -m vflash.install_sol / install_veda not run, or wrong revisionInstall the pinned revision. There is no silent fallback to another kernel.
Resident startup refusedPYTORCH_ALLOC_CONF not set before Python startedExport PYTORCH_ALLOC_CONF=expandable_segments:True in the launching environment.
Triton cannot load a moduleCache directory is read-only or noexecMount a writable, executable cache directory.
Imports resolve to another installationA wrapper interpreter replaces PYTHONPATHInstall Vflash into that interpreter's environment, or prepend your paths to sys.path in the entry script.
First request much slowerModel loading, kernel compilation, cold page cacheCall pipeline.prepare() first and report cold and warm requests separately.

The base package contains no PyTorch or model files; install the pipeline, gpu or server extra for the interface you use, and keep ffmpeg/ffprobe on PATH for MP4 delivery.

Memory failures ​

Distinguish four numbers: PyTorch allocated VRAM, PyTorch reserved VRAM, device-wide VRAM and host RSS. The complete-pipeline default block-ring keeps denoiser weights in host RAM, so a small VRAM figure does not mean enough capacity.

  • Stop unrelated GPU processes before treating an out-of-memory error as a profile limit.
  • Budget host RAM generously: at least 64 GiB available per native worker, about 128 GB for the hybrid pipeline on SM90/SM120, and more for concurrent workers.
  • Expand one dimension at a time from a measured canvas and duration (choose hardware).
  • After any CUDA failure, close the pipeline or session. If cleanup cannot be confirmed, exit the worker process instead of reusing its CUDA context.

Two-GPU execution ​

Both devices need the same supported architecture and one prepared artifact; the complete pipeline uses sequence-head. A peer failure aborts the request, and a hang or partial cleanup ends the worker; do not retry collectives inside the same process. For a controlled regression check only, VFLASH_H3_DIRECT_RELAYOUT=0 restores the earlier materialized copies (details).

Output and quality ​

A playable MP4 proves neither prompt adherence nor numerical equivalence. Check frame count, duration, canvas and audio first, then review several frames, normal-speed playback and the actual audio against the prompt and references. For unexpected endpoint detail, compare the conditioning image, the VAE reconstruction and any keyframe_delivery_profile="exact-v1" restoration separately. When comparing a speed option, keep model, adapter, schedule, prompt, inputs, seed, canvas, duration and device fixed.

What to include in a report ​

Use --profile-denoise for one attribution run. Include the result JSON, Vflash and dependency versions, profile ID, GPU model and count, and a short thermal trace. Do not publish prompts, input media, local paths, device UUIDs or model files.

Vflash · Native MiniMax H3 inference