Higgsfield Dop Image To Video

Higgsfield Dop Image To Video

Playground

Try it on WaveSpeedAI!

DoP converts static images into dynamic 5-second Image-to-Video clips with AI motion synthesis for realistic motion effects. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Higgsfield DoP (Director of Photography) transforms static images into cinematic 5-second motion clips, breathing life into still visuals through advanced AI motion synthesis. It is designed to replicate natural camera dynamics, subtle environmental movement, and realistic scene depth — making every frame feel alive.


🎬 Why it stands out

  • AI Motion Synthesis Applies physically consistent camera movement and environmental dynamics to still images, creating smooth and natural video motion.

  • Cinematic Look and Feel Simulates depth of field, lighting shifts, and parallax effects inspired by real-world cinematography.

  • High Visual Fidelity Maintains the original image’s resolution, color balance, and subject clarity while adding dynamic motion layers.

  • One-Click Storytelling Converts a single static image into an engaging 5-second video ready for social media, advertising, or creative production.

  • Versatile Creative Control Ideal for concept visualization, animated product showcases, fashion imagery, and digital storytelling.


⚙️ How to use

  • Input: First frame image and last frame image (JPEG / PNG / WEBP)
  • Output: 5-second MP4 video with smooth AI motion
  • Motion Types: 360 Orbit, 3D Rotation, Abstract, Action Run, Agent Reveal, Angel Wings, Arc Left, Arc Right…
  • Simple prompt: just describe your desired style, and the model will handle the rest beautifully.

⚡ Model Versions

Higgsfield DoP offers three model variants optimized for different creative and production needs:

  • dop-lite — Entry-level model offering basic speed and efficiency, ideal for quick concept previews or rough motion drafts.
  • dop-turbo — Mid-tier mode with 2× faster generation and priority queue access, suitable for smooth and detailed outputs in less time.
  • dop-preview — Premium mode ensuring highest video quality, enhanced lighting realism, and priority processing for professional-grade production.

💰 Pricing

ModelDurationDescriptionUSD
Lite5sBasic speed$0.125
Turbo5s2× speed, priority queue$0.406
Preview5sHigher quality, priority queue$0.563

💡 Best Use Cases

  • Social Media Marketing — Turn static campaign visuals into scroll-stopping videos.
  • E-commerce & Product Ads — Add depth and subtle motion to product photography.
  • Creative Portfolios — Animate artwork and photography to showcase atmosphere and style.
  • Film & Design Previsualization — Prototype cinematic shots from reference stills.

📝 Notes

  • Please ensure your uploaded images are clear, well-lit, and properly licensed.
  • If motion generation results appear unstable, try re-uploading with simpler composition or fewer overlapping subjects.
  • If your prompt is too complex, the generated result may not be as accurate or visually consistent.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
  "motions": [
    {
      "motion": "360 Orbit",
      "strength": 0
    }
  ],
  "options": "dop-turbo"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/higgsfield/dop/image-to-video" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-The prompt for generating the image.
imagestringYes--
motionsarray<object>Yes-1 ~ 2 itemsArray of terminoogies to use for translation
end_imagestringNo---
optionsstringNodop-turbodop-lite, dop-turbo, dop-preview-

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.