kylinfires's picture
Sync main: low-VRAM live test results (624x360)
b9fc164 verified
Raw History Blame Contribute Delete
2.98 kB
#!/bin/bash
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
JOYOMNI_CONDA_SH="${JOYOMNI_CONDA_SH:-}"
JOYOMNI_CONDA_ENV="${JOYOMNI_CONDA_ENV:-}"
if [ -n "$JOYOMNI_CONDA_ENV" ]; then
: "${NVCC_PREPEND_FLAGS:=}" "${NVCC_APPEND_FLAGS:=}"
export NVCC_PREPEND_FLAGS NVCC_APPEND_FLAGS
if [ -n "$JOYOMNI_CONDA_SH" ]; then
# shellcheck disable=SC1090
source "$JOYOMNI_CONDA_SH"
fi
while [ "${CONDA_SHLVL:-0}" -gt 0 ]; do conda deactivate; done
conda activate "$JOYOMNI_CONDA_ENV"
hash -r
fi
cd "$HERE"
JOYOMNI_CACHE_ROOT="${JOYOMNI_CACHE_ROOT:-$HERE/deps/cache}"
export TORCHINDUCTOR_CACHE_DIR="${TORCHINDUCTOR_CACHE_DIR:-$JOYOMNI_CACHE_ROOT/torchinductor}"
export TRITON_CACHE_DIR="${TRITON_CACHE_DIR:-$JOYOMNI_CACHE_ROOT/triton}"
export CUDA_CACHE_PATH="${CUDA_CACHE_PATH:-$JOYOMNI_CACHE_ROOT/nv_compute}"
export TORCHINDUCTOR_FX_GRAPH_CACHE=1
export PYTORCH_CUDA_ALLOC_CONF="${PYTORCH_CUDA_ALLOC_CONF:-expandable_segments:True}"
mkdir -p "$TORCHINDUCTOR_CACHE_DIR" "$TRITON_CACHE_DIR" "$CUDA_CACHE_PATH"
export PYTHONUNBUFFERED=1
export PYTHONPATH="$HERE"
export JOYOMNI_FP8_IMG="${JOYOMNI_FP8_IMG:-1}"
export JOYOMNI_FP8_TXT="${JOYOMNI_FP8_TXT:-1}"
export JOYOMNI_CUDA_GRAPH="${JOYOMNI_CUDA_GRAPH:-1}"
export JOYOMNI_SAGE_ATTN="${JOYOMNI_SAGE_ATTN:-0}"
export JOYOMNI_FA4_ATTN="${JOYOMNI_FA4_ATTN:-1}"
export JOYOMNI_FP8_FAST_ACCUM="${JOYOMNI_FP8_FAST_ACCUM:-0}"
export JOYOMNI_LOW_VRAM="${JOYOMNI_LOW_VRAM:-0}"
# Local Qwen PE; select api for an external PE endpoint.
export JOYOMNI_PE_BACKEND="${JOYOMNI_PE_BACKEND:-qwen}"
export PE_MODEL="${PE_MODEL:-}"
export OPENAI_BASE_URL="${OPENAI_BASE_URL:-}"
export OPENAI_API_KEY="${OPENAI_API_KEY:-}"
RECORD_DIR="${JOYOMNI_RECORD_DIR:-$HERE/recordings}"
CKPT_ROOT="${JOYOMNI_CKPT_ROOT:-$HERE/deps/checkpoints}"
export JOYOMNI_PE_CKPT="${JOYOMNI_PE_CKPT:-$CKPT_ROOT/Qwen3.5-35B-A3B-GPTQ-Int4}"
DIT_CKPT="${JOYOMNI_DIT_CKPT:-$CKPT_ROOT/JoyAI-Video-Edit/dit/joyai_video_edit_dit_1101_face++.pth}"
VAE_CKPT="${JOYOMNI_VAE_CKPT:-$CKPT_ROOT/JoyAI-Video-Edit/vae}"
TE_CKPT="${JOYOMNI_TEXT_ENCODER_CKPT:-$CKPT_ROOT/MiMo-VL-7B-RL-2508}"
FACE_ONNX="${JOYOMNI_FACE_ONNX:-$CKPT_ROOT/face_detection_yunet_2023mar.onnx}"
PERSON_ONNX="${JOYOMNI_PERSON_ONNX:-$CKPT_ROOT/yolov8n.onnx}"
DEVICE="${JOYOMNI_DEVICE:-cuda:0}"
HOST="${JOYOMNI_HOST:-0.0.0.0}"
PORT="${JOYOMNI_PORT:-8080}"
python xvideo/serving/serve_joyomni_streaming.py \
--dit-ckpt "$DIT_CKPT" \
--vae-ckpt "$VAE_CKPT" \
--text-encoder-ckpt "$TE_CKPT" \
--face-detector-onnx "$FACE_ONNX" \
--person-detector-onnx "$PERSON_ONNX" \
--record-dir "$RECORD_DIR" \
--device "$DEVICE" \
--vae-encode-device "$DEVICE" \
--vae-decode-device "$DEVICE" \
--vae-pseudo-device "$DEVICE" \
--postprocess-device "$DEVICE" \
--width "${JOYOMNI_WIDTH:-840}" --height "${JOYOMNI_HEIGHT:-480}" \
--fps "${JOYOMNI_FPS:-24}" \
--pe-timeout-s "${JOYOMNI_PE_TIMEOUT_S:-60}" \
--host "$HOST" --port "$PORT" \
"$@"