Skip to main content
Vidu is a powerful AI video and audio generation service you can call directly through Fhddos. Use your existing Fhddos token — there is no separate Vidu account registration required. All endpoints share the /vidu prefix, and billing comes straight from your Fhddos account balance.

Authentication

Add your Fhddos token to every request as a Bearer credential:
Authorization: Bearer <fhddos-token>
Base URL: https://aiapi.fhddos.com

Core capabilities

CapabilityDescription
Text-to-videoGenerate a video from a text description
Image-to-videoAnimate a still image into a dynamic video
First / last frameGenerate a smooth transition video between two keyframe images
Reference-to-videoGenerate video anchored to 1–7 reference images
Video replacementReplace the subject in an existing video
Lip syncAdd audio or text dubbing to an existing video
E-commerce one-clickProduce an ad video from a product image in one call
Controllable audio effectsCompose multi-segment audio events on a timeline

Available models

ModelNotes
viduq3-turboLatest Q3 turbo
viduq3-proLatest Q3 pro
viduq2-pro-fastQ2 pro, accelerated
viduq2-proQ2 pro
viduq2-turboQ2 turbo
viduq1Q1 standard
viduq1-classicQ1 classic
vidu2.0Version 2.0 (first-last frame supported)
vidu1.5Image-to-video only — first-last frame not supported

Billing

  • Fees are deducted from your account balance per task.
  • Different models, resolutions, and durations carry different prices.
  • Enable off-peak mode (off_peak=true) for a 50 % discount on generation cost.
  • Tasks that fail or are blocked by content review are not charged.

Quick start

Text-to-video

curl -X POST "https://aiapi.fhddos.com/vidu/ent/v2/text2video" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq3-turbo",
    "prompt": "Cinematic sunset at sea",
    "audio": true,
    "duration": 5,
    "resolution": "720p",
    "style": "general"
  }'

Query task status

curl "https://aiapi.fhddos.com/vidu/ent/v2/tasks/$TASK_ID/creations" \
  -H "Authorization: Bearer $TOKEN"

Video generation endpoints

All generation endpoints follow the same pattern:
POST https://aiapi.fhddos.com/vidu/ent/v2/{action}
ModePath
Text-to-video/vidu/ent/v2/text2video
Image-to-video/vidu/ent/v2/img2video
First-last frame/vidu/ent/v2/start-end2video
Reference-to-video/vidu/ent/v2/reference2video

Common parameters

ParameterTypeRequiredDescription
modelstringModel name (see tables above)
durationintDuration in seconds; valid range depends on model
resolutionstring540p, 720p, or 1080p
movement_amplitudestringCamera motion: auto, small, medium, large
off_peakbooltrue for 50 % off-peak discount
watermarkboolEmbed a watermark in the output
wm_positionstringWatermark position
wm_urlstringURL of the watermark image
callback_urlstringWebhook URL for task-state change notifications

Text-to-video

Generate video purely from a text prompt. Supports general and anime styles, and audio-sync (audio) on Q3 models.
curl -X POST "https://aiapi.fhddos.com/vidu/ent/v2/text2video" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq3-turbo",
    "prompt": "A girl runs toward the camera and winks with a smile.",
    "audio": true,
    "duration": 5,
    "resolution": "720p",
    "style": "general",
    "off_peak": false
  }'
Text-to-video exclusive parameters:
ParameterRequiredDescription
promptText description, up to 2 000 characters
stylegeneral (default) or anime
audiotrue to generate audio alongside the video (Q3 series only)

Image-to-video

Animate a still image. Supply exactly one image URL in the images array.
curl -X POST "https://aiapi.fhddos.com/vidu/ent/v2/img2video" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq3-turbo",
    "images": ["https://your.cdn.com/first.png"],
    "prompt": "The astronaut waved and the camera moved up.",
    "audio": true,
    "duration": 5,
    "resolution": "720p",
    "off_peak": true
  }'
Image-to-video exclusive parameters:
ParameterRequiredDescription
imagesArray of image URLs — must contain exactly 1 image

First-last frame

Generate the middle section of a video between a start frame and an end frame. Supply exactly two image URLs — first frame then last frame.
curl -X POST "https://aiapi.fhddos.com/vidu/ent/v2/start-end2video" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq2-pro",
    "images": [
      "https://your.cdn.com/start.png",
      "https://your.cdn.com/end.png"
    ],
    "duration": 5,
    "resolution": "1080p"
  }'
First-last frame exclusive parameters:
ParameterRequiredDescription
imagesArray of exactly 2 image URLs: [startFrame, endFrame]

Reference-to-video

Generate a video that preserves subjects from 1–7 reference images alongside a text prompt.
curl -X POST "https://aiapi.fhddos.com/vidu/ent/v2/reference2video" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "viduq1",
    "images": [
      "https://your.cdn.com/ref-1.jpg",
      "https://your.cdn.com/ref-2.jpg"
    ],
    "prompt": "A mouse runs toward the camera, smiling and blinking.",
    "duration": 5,
    "resolution": "1080p"
  }'
Reference-to-video exclusive parameters:
ParameterRequiredDescription
imagesArray of 1–7 reference image URLs
promptText description, up to 2 000 characters

Creation response

All generation endpoints return the same initial response:
{
  "task_id": "176843862716480",
  "platform_id": "video_01JSGXXXXXXXXXXXXXXXXXX",
  "state": "created"
}
task_id is the raw Vidu upstream task ID; platform_id (video_<ULID>) is Fhddos’s internal tracking ID. Both IDs are accepted by the query and cancel endpoints. A created state means the task has been queued — poll the query endpoint to get the final result.

Task query & management

All video tasks are asynchronous. Poll the query endpoint or configure a callback_url on creation to receive state-change notifications.

Query task status

curl -X GET "https://aiapi.fhddos.com/vidu/ent/v2/tasks/$TASK_ID/creations" \
  -H "Authorization: Bearer $TOKEN"
Response example (completed):
{
  "id": "176843862716480",
  "state": "success",
  "credits": 10,
  "creations": [
    {
      "id": "creation_123",
      "url": "https://your.cdn/generate/abc.mp4",
      "cover_url": "https://your.cdn/generate/abc.jpg",
      "watermarked_url": "https://your.cdn/generate/abc_wm.mp4"
    }
  ]
}

Task states

StateDescription
createdTask accepted and queued
queueingWaiting for a generation slot
processingActively generating
successGeneration complete
failedGeneration failed (not charged)

Response fields

FieldDescription
creations[].urlTemporary download URL for the generated video
creations[].cover_urlCover thumbnail URL
creations[].watermarked_urlWatermarked video URL (only present when watermark was enabled)
creditsCredits consumed (deducted on success only)

Cancel a task

curl -X POST "https://aiapi.fhddos.com/vidu/ent/v2/tasks/$TASK_ID/cancel" \
  -H "Authorization: Bearer $TOKEN"
A successful cancel response includes any credits consumed up to that point.

Polling recommendations

Interval

Poll every 3–5 seconds to avoid rate limiting.

Timeout

Set a 5–10 minute client timeout; longer videos may take more time.

Callbacks

Set callback_url at creation to receive a push notification instead of polling.

Tips & best practices

Save 50 % with off-peak mode. Add "off_peak": true to any generation request. Generation may take slightly longer, but the cost is halved.
Add a watermark. Pass "watermark": true along with wm_position (position string) and wm_url (URL of your logo image) to brand every output video automatically.
Choose the right style. The style parameter on text-to-video accepts "general" for realistic/cinematic output and "anime" for stylised animation. Only Q3 models support the audio flag for simultaneous audio generation.

Model duration reference

SeriesSupported durations
Q3 (viduq3-*)1–16 seconds
Q2 (viduq2-*)1–8 seconds
vidu2.04 s or 8 s
vidu1.5Standard range; first-last frame not supported