diff --git a/examples/online_serving/image_to_video/README.md b/examples/online_serving/image_to_video/README.md index 8f5b65061..3ae3a5291 100644 --- a/examples/online_serving/image_to_video/README.md +++ b/examples/online_serving/image_to_video/README.md @@ -1,9 +1,9 @@ # Image-To-Video -This shared example demonstrates online image-to-video generation with -vLLM-Omni. The startup script defaults to Wan2.2, but `MODEL` can select any -supported image-to-video model. The client sends the canonical Videos API -request; the server side owns model-specific prompt processing. +This example demonstrates online image-to-video generation with vLLM-Omni. +The startup script defaults to Wan2.2, but `MODEL` can select any supported +image-to-video model. The existing curl helper remains a concrete Wan2.2 +request, while the server side owns model-specific prompt processing. ## Start Server diff --git a/examples/online_serving/image_to_video/run_curl_image_to_video.sh b/examples/online_serving/image_to_video/run_curl_image_to_video.sh index 40ac9bc6b..6f6a6f96d 100644 --- a/examples/online_serving/image_to_video/run_curl_image_to_video.sh +++ b/examples/online_serving/image_to_video/run_curl_image_to_video.sh @@ -1,24 +1,14 @@ #!/bin/bash -# Shared image-to-video curl example using the async video job API. +# Wan2.2 image-to-video curl example using the async video job API. set -euo pipefail INPUT_IMAGE="${INPUT_IMAGE:-../../offline_inference/image_to_video/qwen-bear.png}" BASE_URL="${BASE_URL:-http://localhost:8099}" -OUTPUT_PATH="${OUTPUT_PATH:-image_to_video_output.mp4}" -PROMPT="${PROMPT:-A bear playing with yarn, smooth motion}" +OUTPUT_PATH="${OUTPUT_PATH:-wan22_i2v_output.mp4}" NEGATIVE_PROMPT="${NEGATIVE_PROMPT:-}" SAMPLE_SOLVER="${SAMPLE_SOLVER:-}" POLL_INTERVAL="${POLL_INTERVAL:-2}" -VIDEO_SECONDS="${VIDEO_SECONDS:-}" -SIZE="${SIZE:-}" -FPS="${FPS:-}" -NUM_INFERENCE_STEPS="${NUM_INFERENCE_STEPS:-}" -GUIDANCE_SCALE="${GUIDANCE_SCALE:-}" -GUIDANCE_SCALE_2="${GUIDANCE_SCALE_2:-}" -BOUNDARY_RATIO="${BOUNDARY_RATIO:-}" -FLOW_SHIFT="${FLOW_SHIFT:-}" -SEED="${SEED:-}" if [ ! -f "$INPUT_IMAGE" ]; then echo "Input image not found: $INPUT_IMAGE" @@ -28,28 +18,19 @@ fi create_cmd=( curl -sS -X POST "${BASE_URL}/v1/videos" -H "Accept: application/json" - -F "prompt=${PROMPT}" + -F "prompt=A bear playing with yarn, smooth motion" -F "input_reference=@${INPUT_IMAGE}" + -F "seconds=2" + -F "size=832x480" + -F "fps=16" + -F "num_inference_steps=40" + -F "guidance_scale=1.0" + -F "guidance_scale_2=1.0" + -F "boundary_ratio=0.875" + -F "flow_shift=12.0" + -F "seed=42" ) -append_optional_field() { - local name="$1" - local value="$2" - if [ -n "${value}" ]; then - create_cmd+=(-F "${name}=${value}") - fi -} - -append_optional_field "seconds" "${VIDEO_SECONDS}" -append_optional_field "size" "${SIZE}" -append_optional_field "fps" "${FPS}" -append_optional_field "num_inference_steps" "${NUM_INFERENCE_STEPS}" -append_optional_field "guidance_scale" "${GUIDANCE_SCALE}" -append_optional_field "guidance_scale_2" "${GUIDANCE_SCALE_2}" -append_optional_field "boundary_ratio" "${BOUNDARY_RATIO}" -append_optional_field "flow_shift" "${FLOW_SHIFT}" -append_optional_field "seed" "${SEED}" - if [ -n "${NEGATIVE_PROMPT}" ]; then create_cmd+=(-F "negative_prompt=${NEGATIVE_PROMPT}") fi diff --git a/examples/online_serving/text_to_image/README.md b/examples/online_serving/text_to_image/README.md index 2c9bc2cb6..a57a917d0 100644 --- a/examples/online_serving/text_to_image/README.md +++ b/examples/online_serving/text_to_image/README.md @@ -1,9 +1,9 @@ # Text-To-Image -This shared example demonstrates online text-to-image generation with vLLM-Omni. -The startup script defaults to Qwen-Image, but `MODEL` can select any supported -text-to-image model. Clients send the canonical Images API request; the server -side owns model-specific prompt processing. +This example demonstrates online text-to-image generation with vLLM-Omni. The +startup script and Python clients default to Qwen-Image, but `MODEL` can select +any supported text-to-image model. The existing curl helper remains a concrete +Qwen-Image request, while the server side owns model-specific prompt processing. ## Start Server diff --git a/examples/online_serving/text_to_image/run_curl_text_to_image.sh b/examples/online_serving/text_to_image/run_curl_text_to_image.sh index a3961e66e..151df8948 100755 --- a/examples/online_serving/text_to_image/run_curl_text_to_image.sh +++ b/examples/online_serving/text_to_image/run_curl_text_to_image.sh @@ -1,21 +1,10 @@ #!/bin/bash -# Shared text-to-image curl example +# Qwen-Image text-to-image curl example -set -euo pipefail - -BASE_URL="${BASE_URL:-http://localhost:8091}" -PROMPT="${PROMPT:-a dragon laying over the spine of the Green Mountains of Vermont}" -SIZE="${SIZE:-}" -SEED="${SEED:-}" -OUTPUT_PATH="${OUTPUT_PATH:-text_to_image_output.png}" - -curl -sS -X POST "${BASE_URL}/v1/images/generations" \ +curl -X POST http://localhost:8091/v1/images/generations \ -H "Content-Type: application/json" \ - -d "$(jq -n --arg prompt "${PROMPT}" --arg size "${SIZE}" --arg seed "${SEED}" \ - '{prompt: $prompt} - + (if $size == "" then {} else {size: $size} end) - + (if $seed == "" then {} else {seed: ($seed | tonumber)} end)')" \ - | jq -r '.data[0].b64_json' \ - | base64 -d > "${OUTPUT_PATH}" - -echo "Saved image to ${OUTPUT_PATH}" + -d '{ + "prompt": "a dragon laying over the spine of the Green Mountains of Vermont", + "size": "1024x1024", + "seed": 42 + }' | jq -r '.data[0].b64_json' | base64 -d > dragon.png