#!/bin/bash
# 图生视频入口 (Image-to-Video)
# 模型: MiniMax-Hailuo-2.3-Fast
# 用法: ./i2v.sh --output-dir /abs/path --name 中文名 --first-frame-image URL ["描述"]
set -euo pipefail

OUTPUT_DIR=""
NAME=""
PROMPT=""
DURATION=""
RESOLUTION=""
FIRST_FRAME=""

while [ $# -gt 0 ]; do
    case "$1" in
        --output-dir) OUTPUT_DIR="$2"; shift 2 ;;
        --name) NAME="$2"; shift 2 ;;
        --duration) DURATION="$2"; shift 2 ;;
        --resolution) RESOLUTION="$2"; shift 2 ;;
        --first-frame-image) FIRST_FRAME="$2"; shift 2 ;;
        *)
            if [ -z "$PROMPT" ]; then
                PROMPT="$1"
            fi
            shift
            ;;
    esac
done

if [ -z "$OUTPUT_DIR" ] || [ -z "$NAME" ] || [ -z "$FIRST_FRAME" ]; then
    echo "用法: ./i2v.sh --output-dir <绝对路径> --name <中文名> --first-frame-image <图片URL> [\"动作描述\"]"
    echo "示例: ./i2v.sh --output-dir \$(pwd) --name 猫咪跑步 --first-frame-image https://example.com/cat.jpg \"cat running toward camera\""
    exit 1
fi

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

ARGS=()
ARGS+=("i2v")
[ -n "$PROMPT" ] && ARGS+=("$PROMPT")
ARGS+=(--output-dir "$OUTPUT_DIR")
ARGS+=(--name "$NAME")
ARGS+=(--first-frame-image "$FIRST_FRAME")
[ -n "$DURATION" ] && ARGS+=(--duration "$DURATION")
[ -n "$RESOLUTION" ] && ARGS+=(--resolution "$RESOLUTION")

python3 "$SCRIPT_DIR/generate.py" "${ARGS[@]}"
