Higgsfield: DOP Preview
DOP Preview turns supplied imagery into video using the documented motion-template workflow. The exact dop-preview selector supports one or two effects, with strength, prompt and seed controls retained with the completed result.
About the model
This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.
DOP Preview animates supplied imagery through Higgsfield's documented image-to-video workflow. The exact selector is dop-preview. Use dop-preview as the top-level model selection and as the model value inside the documented params object. The image supplies the visual material, while motion templates and the written direction control the requested movement and effect.
Prepare a reference image in which the intended subject, important details and surrounding space are readable. The guide recommends a high-resolution image for clearer detail. For a product scene, choose a view that shows the object's shape and the surfaces that should remain recognizable during movement. For a person or environment, identify the visual feature that the motion should emphasize. Supply the actual reference image URL through the image input used by the method example.
The operation documents one or two motion templates. When two are supplied, the guide describes their effects as combined. The preset descriptions include camera movement, subject rotation and visual transformations; for example, Dolly In describes a camera approach, while 3D Rotation describes a subject or product turning in place. Select the documented template identifiers that match the intended sequence and keep each identifier with its strength value.
Motion strength is a number from 0 to 1, with 0.8 as the documented default. The guide describes 0.3 as a subtle effect and 1 as strong movement. Choose the intensity according to the detail that needs to stay readable and review the complete generated action. A motion description and its strength serve different purposes: the template selects the effect, while strength controls its intensity.
The prompt field must be present according to its description, but an empty string is allowed. For template-driven effects, the guide recommends leaving the prompt empty; when text is supplied, it recommends including the template's description because the prompt can strongly change the result. The enhance_prompt control enables prompt optimization and is documented as true by default. Keep the text and this control with the reference image and selected templates when comparing versions.
The seed control accepts an integer from 1 through 1000000. Record the chosen seed with the generation settings. The request also exposes an integer seconds field; keep the value used with the resulting clip and inspect the clip's actual timing and framing. The check_nsfw boolean enables the documented content filter and defaults to true. These controls belong to the image-to-video request and should remain associated with the exact selected model.
Generation is asynchronous. Retain the returned task identity while following the configured status and result query. The completion mapping reads completed job entries and their raw result URLs. Save every completed video result and preserve its job identifier with the returned URL, keeping all completed entries together as the operation's result.
Review the full video against the supplied image, chosen effect and written direction: subject appearance, movement, framing and the closing view. For a revision, identify the concrete visual detail to change and retain the successful parts of the request. Keep the original image reference, exact selector, prompt, motion identifiers, strengths, seed, requested settings and completed assets together so the next comparison uses the actual generation.
Ailoot Ultra · Video POST /v1/videos dop-preview
dop-previewOverview
DOP Preview turns supplied imagery into video using the documented motion-template workflow. The exact dop-preview selector supports one or two effects, with strength, prompt and seed controls retained with the completed result.
- Accepted inputs
- Images · Text
- Results
- Video
Available in Ailoot · inputs & methods
Ailoot Ultra · Video POST /v1/videos
- Input types
image,text- Output types
video
| Field | Type | Requirement | Values & limits | Default |
|---|---|---|---|---|
Fieldmodel | Typestring | RequirementRequired | Values & limits dop-preview Conditions: Ailoot model selector. | Default— |
Fieldparams | Typeobject | RequirementRequired | Values & limits Conditions: Image-to-video parameters; preserve this envelope. | Default— |
Fieldparams.model | Typestring | RequirementRequired | Values & limits dop-preview Conditions: Use the same selector as the top-level model. | Default— |
Fieldparams.prompt | Typestring | RequirementRequired | Values & limits Conditions: Keep this field present; an empty string is documented. Written guidance strongly affects the selected motion effect. | Default— |
Fieldparams.seconds | Typeinteger | RequirementOptional | Values & limits Conditions: Requested duration; no documented range or default is asserted. | Default— |
Fieldparams.motions | Typearray | RequirementOptional | Values & limits Conditions: Choose one or two documented motion templates. | Default— |
Fieldparams.motions[].id | Typestring | RequirementRequired | Values & limits Conditions: Motion identifier in the documented working request example. | Default— |
Fieldparams.motions[].strength | Typenumber | RequirementRequired | Values & limits Minimum: 0 Maximum: 1 Conditions: Motion intensity: 0.3 is described as subtle and 1 as strong. | Default0.8 |
Fieldparams.input_images | Typearray | RequirementOptional | Values & limits Conditions: Reference images, using the array of image_url objects shown in the working example. | Default— |
Fieldparams.input_images[].type | Typestring | RequirementRequired | Values & limits image_url Conditions: Reference representation. | Default— |
Fieldparams.input_images[].image_url | Typestring | RequirementRequired | Values & limits Conditions: Your actual accessible reference image URL. | Default— |
Fieldparams.enhance_prompt | Typeboolean | RequirementOptional | Values & limits Conditions: Prompt enhancement. | Defaulttrue |
Fieldparams.check_nsfw | Typeboolean | RequirementOptional | Values & limits Conditions: Content filtering. | Defaulttrue |
Fieldparams.seed | Typeinteger | RequirementOptional | Values & limits Minimum: 1 Maximum: 1,000,000 Conditions: Seed for consistent output. | Default— |
Fieldwebhook | Typeobject | RequirementOptional | Values & limits Conditions: Optional documented webhook settings; owned-result retrieval uses the Ailoot task paths. | Default— |
Fieldwebhook.url | Typestring | RequirementOptional | Values & limits Conditions: Your receiver URL. | Default— |
Fieldwebhook.secret | Typestring | RequirementOptional | Values & limits Conditions: Your receiver secret. | Default— |
Fieldcallback | Typestring | RequirementOptional | Values & limits Conditions: Optional callback receiver; the documented receiver responds with HTTP 200. | Default— |
Input material combinations
Method parameters and lifecycle
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, params |
Parameteroptional | Contractparams.seconds, params.motions, params.input_images, params.enhance_prompt, params.check_nsfw, params.seed, webhook, webhook.url, webhook.secret, callback |
Parametermaterial_types | Contractimage, text |
Parameteradditional_properties | Contracttrue |
Parametervalidation_scope | ContractThe model routes the request; the parameters envelope follows the demonstrated image-to-video request. |
Method aliases: /v1/videos/generations
Lifecycle: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Use the same model selector at the top level and inside params.
Create once, then use the returned public id and polling_url for the original operation.
Retrieve every completed owned video; inspect actual duration and dimensions in the result.
Replace YOUR_ACCESSIBLE_IMAGE_URL in the example with your actual reference image URL.
Pricing
How the final charge is calculated
The displayed rates estimate the cost before generation. The final charge is calculated from the cost recorded for the original generation. Measured output duration and forecast quantities are not the final billable quantity.
Tariff references do not add request options. Supported parameters are listed for the selected method.
- Fast mode
- Not specified When fast mode is selected
- Flex mode
- Not specified When flex mode is selected
- Maximum reasoning effort
- Not specified When maximum reasoning effort uses the default adjustment
Estimated rates for comparison
Prices by configuration
Match each charge to the conditions shown. Use one rate for each set of alternative configurations.
| Configuration | Rate schedule | Forecast quantity | Charge |
|---|---|---|---|
| ConfigurationBase token rates | Rate scheduleBase rate | Forecast quantity— | Charge Input · Input tokens · Estimate for comparison only — / 1K tokens Output · Output tokens · Estimate for comparison only — / 1K tokens Input · Cache read · Estimate for comparison only — / 1K tokens Input · Cache write · Estimate for comparison only — / 1K tokens Input · Cache write, 1 hour · Estimate for comparison only — / 1K tokens |
| ConfigurationEstimated generation cost | Rate schedule— | Forecast quantityone generation estimate | Charge Output · Estimated generation cost · Estimate for comparison only $1.24 estimate before generation This estimate is not an additional charge or a fixed rate for the completed generation. |
Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →
Example requests
Ailoot Ultra · Video
{
"model": "dop-preview",
"params": {
"model": "dop-preview",
"prompt": "a cat",
"seed": 500000,
"motions": [
{
"id": "2bae49e6-ffe7-42a8-a73f-d44632c4acaa",
"strength": 0.5
}
],
"input_images": [
{
"type": "image_url",
"image_url": "YOUR_ACCESSIBLE_IMAGE_URL"
}
],
"enhance_prompt": true,
"check_nsfw": true
}
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i:raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use the actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
Receive and save results
Ailoot Ultra · Video
Keep the returned jobs and their states. Read every completed owned video result.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Keep all completed results
Save every completed video or returned file; retrieve every actual returned asset URL.
Fetch every actual completed output; do not assume a fixed count.
If the original response needs checking
Keep the original response and returned task identity; an unrecognized state or ambiguous send does not authorize a new creation.
Response fields
| Field | Type | Meaning |
|---|---|---|
Fieldid | Typestring | MeaningPublic Ailoot task or operation identifier. |
Fieldprovider_task_id | Typestring | MeaningOriginal task identifier, separate from the public id. |
Fieldpolling_url | Typestring | MeaningReturned Ailoot lookup path. |
Fieldjobs[].id | Typestring | MeaningActual returned job identifier. |
Fieldjobs[].status | Typestring | MeaningState of each returned job. |
Fieldjobs[].results.raw.url | Typestring | MeaningEach completed video is exposed through an Ailoot-owned signed URL. |
Errors and next steps
| Response | Condition | Next step |
|---|---|---|
Response400 · invalid_request_error | ConditionInvalid JSON/model or an invalid content index. | Next step |
Response401 · authentication_error | ConditionInvalid Ailoot API key. | Next step |
Response403 · permission_error | ConditionThe API key group is not admitted to this media route. | Next step |
Response404 · not_found_error | ConditionThe original task or requested output is absent or not owned by the same user/API key/group. | Next step |
Response502 · result_pending_check | ConditionOriginal submit or status is incomplete or cannot be reconciled; preserve the original ID and do not resubmit. | Next step |
Response503 · result_pending_check | ConditionThe original binding, route or owned media is still being checked; continue checking that original operation. | Next step |
Response503 · server_error | ConditionThe media service or original task storage is unavailable. | Next step |
Aliases
Model aliases
Ailoot Ultra dop-preview
Method path aliases
/v1/videos/generations
Related caller IDs
FAQ · Higgsfield: DOP Preview
- What inputs and results are available?
POST /v1/videos·dop-preview:image,text→video- Which fields does the request use?
POST /v1/videos·dop-preview:model,params,webhook,callback- What limits apply?
POST /v1/videos·dop-preview:params.motions[].strength.minimum:0;params.motions[].strength.maximum:1;params.seed.minimum:1;params.seed.maximum:1000000