LTX-2.3 Distilled (V2V)
Credit-based pricing. Supports image-to-video, reference video, audio generation.
Inputs
- Reference video (required)
- Start image (optional)
- Reference audio (optional)
- Generates audio
Example prompt
Faster and cheaper than full LTX-2.3 V2V — upload a reference video and describe any scene for quick high-quality style transferTry this prompt →
API & LLM schema
Exact request contract for this model. Agents can fetch it from /api/v1/models?id=fal-ai/ltx-2.3-22b/distilled/reference-video-to-video.
/api/v1/generate36 fields · 3 required| Field | Type | Requirement | Contract |
|---|---|---|---|
model_id | constant | Required | ArtEmotion model identifier. |
extra | object | Optional | Model-specific settings may also be nested here. |
max_credits | number | Optional | Reject before submission if the estimated list price exceeds this cap. · Range: 1–… |
webhook_url | string | Optional | Format: uri |
webhook_secret | string | Optional | Optional model input. |
folder_id | string | Optional | Optional model input. |
prompt | string | Required | Optional model input. |
preprocessor | string | Optional | The preprocessor to use for the generation. · Allowed: depth, canny, pose, none · Default: none |
generate_audio | boolean | Optional | Whether to generate audio for the video. · Default: true |
ic_lora_type | string | Optional | The IC LoRA type to use for the generation. · Allowed: match_preprocessor, union, detailer, none · Default: union |
use_multiscale | boolean | Optional | Whether to use multi-scale generation. If True, the model will generate the video at a smaller scale first, then use the smaller video to guide the ge · Default: true |
seed | integer | Optional | The seed for the random number generator. |
video_strength | number | Optional | Video conditioning strength. Lower values represent more freedom given to the model to change the video content. · Default: 1 · Range: 0–1 |
audio_strength | number | Optional | Audio conditioning strength. Lower values represent more freedom given to the model to change the audio content. · Default: 1 · Range: 0–1 |
scheduler | string | Optional | The scheduler to use. · Allowed: ltx2, linear_quadratic, beta · Default: ltx2 |
match_video_length | boolean | Optional | When enabled, the number of frames will be calculated based on the video duration and FPS. When disabled, use the specified num_frames. · Default: true |
distill_lora_second_pass_scale | number | Optional | The scale of the distill LoRA to use for the second and subsequent passes. · Default: 0.5 · Range: 0–1 |
num_frames | number | Optional | The number of frames to generate. · Default: 121 · Range: 9–481 |
acceleration | string | Optional | The acceleration level to use. · Allowed: none, regular, high, full · Default: none |
video_write_mode | string | Optional | The write mode of the generated video. · Allowed: fast, balanced, small · Default: balanced |
video_quality | string | Optional | The quality of the generated video. · Allowed: low, medium, high, maximum · Default: high |
video_output_type | string | Optional | The output type of the generated video. · Allowed: X264 (.mp4), VP9 (.webm), PRORES4444 (.mov), GIF (.gif) · Default: X264 (.mp4) |
camera_lora_scale | number | Optional | The scale of the camera LoRA to use. This allows you to control the camera movement of the generated video more accurately than just prompting the mod · Default: 1 · Range: 0–1 |
camera_lora | string | Optional | The camera LoRA to use. This allows you to control the camera movement of the generated video more accurately than just prompting the model to move th · Allowed: dolly_in, dolly_out, dolly_left, dolly_right, jib_up, jib_down, static, none · Default: none |
match_input_fps | boolean | Optional | When true, match the output FPS to the input video's FPS instead of using the default target FPS. · Default: true |
negative_prompt | string | Optional | The negative prompt to generate the video from. · Default: news broadcast, 3d animation, computer graphics, pc game, console game, video game, cartoon, childish, watermark, logo, text, on screen text, subtitles, titles, signature, slowmo, static |
enable_prompt_expansion | boolean | Optional | Whether to enable prompt expansion. · Default: true |
enable_safety_checker | boolean | Optional | Run the safety checker to block unsafe content. · Default: true |
fps | number | Optional | The frames per second of the generated video. · Default: 24 · Range: 1–60 |
aspect_ratio | string | Optional | Allowed: 16:9, 9:16, 1:1 |
resolution | string | Optional | Allowed: 1080p, 1440p |
duration | number | Optional | Allowed: 3, 4, 5, 6, 7, 8, 10 |
image_url | string | Optional | Format: uri |
end_image_url | string | Optional | Format: uri |
video_url | string | Required | Format: uri |
audio_url | string | Optional | Format: uri |
Minimal request example
{
"model_id": "fal-ai/ltx-2.3-22b/distilled/reference-video-to-video",
"prompt": "Faster and cheaper than full LTX-2.3 V2V — upload a reference video and describe any scene for quick high-quality style transfer",
"video_url": "https://example.com/video"
}Raw JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://www.artemotion.ai/api/v1/models?id=fal-ai%2Fltx-2.3-22b%2Fdistilled%2Freference-video-to-video",
"title": "LTX-2.3 Distilled (V2V) generation request",
"description": "Request body accepted by POST /api/v1/generate for fal-ai/ltx-2.3-22b/distilled/reference-video-to-video.",
"type": "object",
"properties": {
"model_id": {
"type": "string",
"const": "fal-ai/ltx-2.3-22b/distilled/reference-video-to-video",
"description": "ArtEmotion model identifier."
},
"extra": {
"type": "object",
"additionalProperties": true,
"description": "Model-specific settings may also be nested here."
},
"max_credits": {
"type": "number",
"minimum": 1,
"description": "Reject before submission if the estimated list price exceeds this cap."
},
"webhook_url": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"webhook_secret": {
"type": "string",
"maxLength": 512
},
"folder_id": {
"type": "string"
},
"prompt": {
"type": "string"
},
"preprocessor": {
"title": "Preprocessor",
"description": "The preprocessor to use for the generation.",
"default": "none",
"type": "string",
"enum": [
"depth",
"canny",
"pose",
"none"
]
},
"generate_audio": {
"title": "Generate Audio",
"description": "Whether to generate audio for the video.",
"default": true,
"type": "boolean"
},
"ic_lora_type": {
"title": "IC-LoRA Type",
"description": "The IC LoRA type to use for the generation.",
"default": "union",
"type": "string",
"enum": [
"match_preprocessor",
"union",
"detailer",
"none"
]
},
"use_multiscale": {
"title": "Use Multiscale",
"description": "Whether to use multi-scale generation. If True, the model will generate the video at a smaller scale first, then use the smaller video to guide the ge",
"default": true,
"type": "boolean"
},
"seed": {
"title": "Seed",
"description": "The seed for the random number generator.",
"type": "integer"
},
"video_strength": {
"title": "Video Strength",
"description": "Video conditioning strength. Lower values represent more freedom given to the model to change the video content.",
"default": 1,
"type": "number",
"minimum": 0,
"maximum": 1
},
"audio_strength": {
"title": "Audio Strength",
"description": "Audio conditioning strength. Lower values represent more freedom given to the model to change the audio content.",
"default": 1,
"type": "number",
"minimum": 0,
"maximum": 1
},
"scheduler": {
"title": "Scheduler",
"description": "The scheduler to use.",
"default": "ltx2",
"type": "string",
"enum": [
"ltx2",
"linear_quadratic",
"beta"
]
},
"match_video_length": {
"title": "Match Video Length",
"description": "When enabled, the number of frames will be calculated based on the video duration and FPS. When disabled, use the specified num_frames.",
"default": true,
"type": "boolean"
},
"distill_lora_second_pass_scale": {
"title": "Distill Lora Second Pass Scale",
"description": "The scale of the distill LoRA to use for the second and subsequent passes.",
"default": 0.5,
"type": "number",
"minimum": 0,
"maximum": 1
},
"num_frames": {
"title": "Num Frames",
"description": "The number of frames to generate.",
"default": 121,
"type": "number",
"minimum": 9,
"maximum": 481,
"multipleOf": 1
},
"acceleration": {
"title": "Acceleration",
"description": "The acceleration level to use.",
"default": "none",
"type": "string",
"enum": [
"none",
"regular",
"high",
"full"
]
},
"video_write_mode": {
"title": "Video Write Mode",
"description": "The write mode of the generated video.",
"default": "balanced",
"type": "string",
"enum": [
"fast",
"balanced",
"small"
]
},
"video_quality": {
"title": "Video Quality",
"description": "The quality of the generated video.",
"default": "high",
"type": "string",
"enum": [
"low",
"medium",
"high",
"maximum"
]
},
"video_output_type": {
"title": "Video Output Type",
"description": "The output type of the generated video.",
"default": "X264 (.mp4)",
"type": "string",
"enum": [
"X264 (.mp4)",
"VP9 (.webm)",
"PRORES4444 (.mov)",
"GIF (.gif)"
]
},
"camera_lora_scale": {
"title": "Camera LoRA Scale",
"description": "The scale of the camera LoRA to use. This allows you to control the camera movement of the generated video more accurately than just prompting the mod",
"default": 1,
"type": "number",
"minimum": 0,
"maximum": 1
},
"camera_lora": {
"title": "Camera LoRA",
"description": "The camera LoRA to use. This allows you to control the camera movement of the generated video more accurately than just prompting the model to move th",
"default": "none",
"type": "string",
"enum": [
"dolly_in",
"dolly_out",
"dolly_left",
"dolly_right",
"jib_up",
"jib_down",
"static",
"none"
]
},
"match_input_fps": {
"title": "Match Input Fps",
"description": "When true, match the output FPS to the input video's FPS instead of using the default target FPS.",
"default": true,
"type": "boolean"
},
"negative_prompt": {
"title": "Negative Prompt",
"description": "The negative prompt to generate the video from.",
"default": "news broadcast, 3d animation, computer graphics, pc game, console game, video game, cartoon, childish, watermark, logo, text, on screen text, subtitles, titles, signature, slowmo, static",
"type": "string"
},
"enable_prompt_expansion": {
"title": "Enable Prompt Expansion",
"description": "Whether to enable prompt expansion.",
"default": true,
"type": "boolean"
},
"enable_safety_checker": {
"title": "Enable Safety Checker",
"description": "Run the safety checker to block unsafe content.",
"default": true,
"type": "boolean"
},
"fps": {
"title": "Fps",
"description": "The frames per second of the generated video.",
"default": 24,
"type": "number",
"minimum": 1,
"maximum": 60
},
"aspect_ratio": {
"type": "string",
"enum": [
"16:9",
"9:16",
"1:1"
]
},
"resolution": {
"type": "string",
"enum": [
"1080p",
"1440p"
]
},
"duration": {
"type": "number",
"enum": [
3,
4,
5,
6,
7,
8,
10
]
},
"image_url": {
"type": "string",
"format": "uri"
},
"end_image_url": {
"type": "string",
"format": "uri"
},
"video_url": {
"type": "string",
"format": "uri"
},
"audio_url": {
"type": "string",
"format": "uri"
}
},
"required": [
"model_id",
"prompt",
"video_url"
],
"additionalProperties": false
}FAQ
How much does LTX-2.3 Distilled (V2V) cost on ArtEmotion?
Credit-based pricing. You pay in ArtEmotion credits — every plan and top-up converts USD to credits at a fixed rate.
Do I get my credits back if LTX-2.3 Distilled (V2V) fails?
Yes — failed generations are never charged. The credits are released back to your balance automatically.
Can I call LTX-2.3 Distilled (V2V) from the API?
Yes. Use POST /api/v1/generate with model_id: "fal-ai/ltx-2.3-22b/distilled/reference-video-to-video". See the API reference for the full schema.
Where are my generations stored?
Every output is saved to your personal Library. You can export or delete everything any time from Privacy & deletion.
Ready to generate with LTX-2.3 Distilled (V2V)?
Start now →No commitment. New accounts get 50 free credits on signup. See pricing.