Hailuo 2.3 Pro is Hailuo's image-to-video model on Versely. This page is its structured prompting reference: the 4 parameters its schema actually exposes, the i2v technique that applies to it, copy-ready templates.
Everything here is grounded in the same sources Versely's agent reads — the model's input schema. Where a line is general craft advice rather than a documented fact about Hailuo 2.3 Pro, the page says so.
What Hailuo 2.3 Pro wants
The exact input surface, from the same schema the Versely agent fetches with get_model_input_schema before every generation.
| Parameter | What it does | Values |
|---|---|---|
promptreq | Animation description (max 5000) | string (max 5000) |
image_urlreq | Source image (JPEG/PNG/WebP, ≤10MB) | string |
duration | Seconds — 10s NOT supported at 1080P | 6 · 10default: 6 |
resolution | Resolution — UPPERCASE P | 768P · 1080Pdefault: 768P |
- — 10s + 1080P combination is NOT supported — must pick one or the other
- — NO T2V variant exists on KIE for Hailuo 2.3
Technique that applies here
Image-to-video: animating a start frame; motion description relative to the input image; UGC hook pool applies
- Aspect ratio usually isn't a settable parameter in image-to-video mode — it's inherited from your source image. Vidu Q3's runpod schema note is explicit: 'No style/aspect_ratio fields in I2V — aspect ratio is inferred from the input image.' Pixverse 5.6 I2V's note says the same thing: 'I2V infers aspect_ratio from image (no aspect_ratio field).' Wan's i2v schemas (2.7, and the folded Wan 2.5 variants) all omit an aspect_ratio param entirely; two of its provider variants confirm this directly in their own schema notes — kie's says 'inferred from image', replicate's says 'aspect is derived from the input image.' Crop or compose your source image to the aspect you want before you upload it; asking for '16:9 widescreen' in the prompt text does nothing on these schemas.
- Not every 'image-to-video' model takes the same kind of prompt. HeyGen's i2v schema is a talking-avatar generator — voice, audio_url and a talking_style enum ('stable'/'expressive') carry the performance, and prompt itself isn't even required (only image_url is). Hailuo 2.3's i2v is the opposite: motion-description-only, no audio output at all, and no text-to-video sibling to fall back on ('NO T2V variant exists on KIE for Hailuo 2.3', per its own schema note). Check which flavor of 'i2v' you're actually on before assuming a generic motion prompt applies.
- General technique: keep the description to one continuous physical action sized to the fixed duration enum you picked — Hailuo only offers 6s or 10s, Kling's i2v duration runs roughly 3-15s depending on tier. Because the model has to reconcile your text against a real uploaded photo, a second competing action or a contradicting detail (different clothing, different background) fights the source image rather than animating it.
Copy-ready templates
Replace the bracketed slots; each template says when it's the right shape.
[WHAT MOVES — e.g. 'she turns her head toward camera and smiles'], [SECONDARY MOTION DETAIL — e.g. 'hair drifts in a light breeze']. Camera: [static / slow push-in / slight handheld].
Use when: i2v models whose schema infers aspect ratio from the source image (Vidu, Pixverse, Wan) — crop the source image to your target aspect first, then spend the whole prompt on motion, not framing.
[SUBJECT] [ACTION], camera [MOVEMENT TYPE — pan / zoom / tracking shot]. Motion direction: [e.g. left-to-right / toward camera]. Pacing: [slow / steady / quick].
Use when: Kling-family i2v models — the applied family tip rewards named camera movement plus explicit motion direction and pacing.
How the Versely agent does this automatically
You can use this page by hand, or let the agent apply the same knowledge. Four real mechanisms — no more, no less:
get_model_input_schema— before generating, the agent looks up Hailuo 2.3 Pro's exact input fields, required fields, allowed values, defaults, and min/max bounds. The parameter table above is that same surface.- The prompt enhancer's family rules — 12 per-family rewrite rules (this model's family isn't one of the 12, so only general enhancement applies) shape how a rough prompt gets rewritten.
- The per-provider speech guide — for TTS scripts, the agent follows a provider-specific tag scheme — not relevant to this model, but it's why voiceover scripts come out marked up correctly.
expand_movie_scene— in movie flows, brief scene ideas are rewritten into detailed cinematic descriptions before generation.
Mistakes that waste generations
- Asking for a specific aspect ratio in the prompt when the schema doesn't expose an aspect_ratio param — it's silently ignored; on Vidu, Pixverse, and Wan's i2v variants the frame shape comes entirely from the source image you upload.
- Re-describing the subject or scene the source image already shows instead of focusing on the motion — wastes prompt budget and can conflict with the photo (a different outfit or background than what's actually in frame).
- Treating every 'image-to-video' model as the same shape: sending a HeyGen-style voice/talking_style prompt to Vidu, or a plain motion-description prompt to HeyGen, targets a control surface that model doesn't expose.
The long-form guide
This page is the structured reference. For the essay treatment — worked examples, failure modes, and narrative — read Hailuo 2.3 Prompting Guide.
This guide also covers
These siblings share Hailuo 2.3 Pro's prompting-relevant input surface, so their prompting URLs resolve here — tier and pricing differences live on their own model pages:
Frequently asked questions
How long can a Hailuo 2.3 Pro prompt be?+
Hailuo 2.3 Pro's schema caps the prompt at 5,000 characters. Spend them on the subject, motion, and the register its family rewards rather than restating parameters the schema already controls.
Does Hailuo 2.3 Pro support negative prompts?+
No — Hailuo 2.3 Pro's published schema has no negative_prompt parameter. Exclusions have to be phrased positively inside the main prompt, or dropped.
How long can a Hailuo 2.3 Pro generation be?+
Duration is a hard enum: 6, 10. Write one continuous beat sized to the window you pick, not a script the model will compress.
How does the Versely agent know Hailuo 2.3 Pro's parameters?+
Before generating, the agent calls its get_model_input_schema tool, which looks up the exact input fields, required fields, allowed values, defaults, and min/max bounds for the model. Nothing on this page is guessed — it is the same schema surface those tools read.
Does this guide also cover Hailuo 2.3 Fast and Hailuo 2.3 Standard?+
Yes. Hailuo 2.3 Fast, Hailuo 2.3 Standard share the same prompting-relevant input surface as Hailuo 2.3 Pro, so their prompting URLs redirect here instead of duplicating this page. Tier and pricing differences live on each model's own /models page.
Related prompting guides
Generate with Hailuo 2.3 Pro
Hailuo 2.3 Pro is live in Versely — paste a template above, or just describe what you want and let the agent map it onto the schema for you.