Skip to main content
ArtEmotion
Video

Wan 2.2 (T2V LoRA)

Credit-based pricing.

Output
video
Aspect ratio
16:9, 9:16, 1:1
Resolution
480p, 580p, 720p

Example prompt

A lone protagonist sprints through rain-slicked downtown streets at night in GTA-style open world graphics, neon signs reflecting on wet pavement, police helicopter spotlight tracking them from above, cinematic action sequence
Try this prompt →
LLM-ready

API & LLM schema

Exact request contract for this model. Agents can fetch it from /api/v1/models?id=fal-ai/wan/v2.2-a14b/text-to-video/lora.

POST/api/v1/generate33 fields · 2 required
FieldTypeRequirementContract
model_idconstantRequiredArtEmotion model identifier.
extraobjectOptionalModel-specific settings may also be nested here.
max_creditsnumberOptionalReject before submission if the estimated list price exceeds this cap. · Range: 1–…
webhook_urlstringOptionalFormat: uri
webhook_secretstringOptionalOptional model input.
folder_idstringOptionalOptional model input.
promptstringRequiredOptional model input.
video_write_modestringOptionalThe write mode of the output video. Faster write mode means faster results but larger file size, balanced write mode is a good compromise between spee · Allowed: fast, balanced, small · Default: balanced
enable_output_safety_checkerbooleanOptionalIf set to true, output video will be checked for safety after generation. · Default: false
seedintegerOptionalRandom seed for reproducibility. If None, a random seed is chosen.
adjust_fps_for_interpolationbooleanOptionalIf true, the number of frames per second will be multiplied by the number of interpolated frames plus one. For example, if the generated frames per se · Default: true
guidance_scale_2numberOptionalGuidance scale for the second stage of the model. This is used to control the adherence to the prompt in the second stage of the model. · Default: 4 · Range: 1–10
negative_promptstringOptionalNegative prompt for video generation. · Default:
accelerationstringOptionalAcceleration level to use. The more acceleration, the faster the generation, but with lower quality. The recommended value is 'regular'. · Allowed: none, regular · Default: regular
guidance_scalenumberOptionalClassifier-free guidance scale. Higher values give better adherence to the prompt but may decrease quality. · Default: 3.5 · Range: 1–10
interpolator_modelstringOptionalThe model to use for frame interpolation. If None, no interpolation is applied. · Allowed: none, film, rife · Default: film
reverse_videobooleanOptionalIf true, the video will be reversed. · Default: false
num_inference_stepsnumberOptionalNumber of inference steps for sampling. Higher values give better quality but take longer. · Default: 27 · Range: 2–40
shiftnumberOptionalShift value for the video. Must be between 1.0 and 10.0. · Default: 5 · Range: 1–10
num_interpolated_framesnumberOptionalNumber of frames to interpolate between each pair of generated frames. Must be between 0 and 4. · Default: 1 · Range: 0–4
frames_per_secondnumberOptionalFrames per second of the generated video. Must be between 4 to 60. When using interpolation and `adjust_fps_for_interpolation` is set to true (default · Default: 16 · Range: 4–60
num_framesnumberOptionalNumber of frames to generate. Must be between 17 to 161 (inclusive). · Default: 81 · Range: 17–161
enable_prompt_expansionbooleanOptionalWhether to enable prompt expansion. This will use a large language model to expand the prompt with additional details while maintaining the original m · Default: false
video_qualitystringOptionalThe quality of the output video. Higher quality means better visual quality but larger file size. · Allowed: low, medium, high, maximum · Default: high
enable_safety_checkerbooleanOptionalRun the input safety checker before generation. · Default: false
lora_pathstringOptionalURL or Hugging Face path to LoRA weights (e.g. username/repo or https://…).
lora_scalenumberOptionalStrength of the LoRA effect. 1 = default weight, higher = stronger influence. · Default: 1 · Range: 0–4
lora_path_2stringOptionalURL or Hugging Face path to a second set of LoRA weights.
lora_scale_2numberOptionalStrength of the second LoRA. · Default: 1 · Range: 0–4
lora_path_3stringOptionalURL or Hugging Face path to a third set of LoRA weights.
lora_scale_3numberOptionalStrength of the third LoRA. · Default: 1 · Range: 0–4
aspect_ratiostringOptionalAllowed: 16:9, 9:16, 1:1
resolutionstringOptionalAllowed: 480p, 580p, 720p
Minimal request example
{
  "model_id": "fal-ai/wan/v2.2-a14b/text-to-video/lora",
  "prompt": "A lone protagonist sprints through rain-slicked downtown streets at night in GTA-style open world graphics, neon signs reflecting on wet pavement, police helicopter spotlight tracking them from above, cinematic action sequence"
}
Raw JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.artemotion.ai/api/v1/models?id=fal-ai%2Fwan%2Fv2.2-a14b%2Ftext-to-video%2Flora",
  "title": "Wan 2.2 (T2V LoRA) generation request",
  "description": "Request body accepted by POST /api/v1/generate for fal-ai/wan/v2.2-a14b/text-to-video/lora.",
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string",
      "const": "fal-ai/wan/v2.2-a14b/text-to-video/lora",
      "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"
    },
    "video_write_mode": {
      "title": "Video Write Mode",
      "description": "The write mode of the output video. Faster write mode means faster results but larger file size, balanced write mode is a good compromise between spee",
      "default": "balanced",
      "type": "string",
      "enum": [
        "fast",
        "balanced",
        "small"
      ]
    },
    "enable_output_safety_checker": {
      "title": "Enable Output Safety Checker",
      "description": "If set to true, output video will be checked for safety after generation.",
      "default": false,
      "type": "boolean"
    },
    "seed": {
      "title": "Seed",
      "description": "Random seed for reproducibility. If None, a random seed is chosen.",
      "type": "integer"
    },
    "adjust_fps_for_interpolation": {
      "title": "Adjust Fps For Interpolation",
      "description": "If true, the number of frames per second will be multiplied by the number of interpolated frames plus one. For example, if the generated frames per se",
      "default": true,
      "type": "boolean"
    },
    "guidance_scale_2": {
      "title": "Guidance Scale 2",
      "description": "Guidance scale for the second stage of the model. This is used to control the adherence to the prompt in the second stage of the model.",
      "default": 4,
      "type": "number",
      "minimum": 1,
      "maximum": 10
    },
    "negative_prompt": {
      "title": "Negative Prompt",
      "description": "Negative prompt for video generation.",
      "default": "",
      "type": "string"
    },
    "acceleration": {
      "title": "Acceleration",
      "description": "Acceleration level to use. The more acceleration, the faster the generation, but with lower quality. The recommended value is 'regular'.",
      "default": "regular",
      "type": "string",
      "enum": [
        "none",
        "regular"
      ]
    },
    "guidance_scale": {
      "title": "Guidance Scale",
      "description": "Classifier-free guidance scale. Higher values give better adherence to the prompt but may decrease quality.",
      "default": 3.5,
      "type": "number",
      "minimum": 1,
      "maximum": 10
    },
    "interpolator_model": {
      "title": "Interpolator Model",
      "description": "The model to use for frame interpolation. If None, no interpolation is applied.",
      "default": "film",
      "type": "string",
      "enum": [
        "none",
        "film",
        "rife"
      ]
    },
    "reverse_video": {
      "title": "Reverse Video",
      "description": "If true, the video will be reversed.",
      "default": false,
      "type": "boolean"
    },
    "num_inference_steps": {
      "title": "Num Inference Steps",
      "description": "Number of inference steps for sampling. Higher values give better quality but take longer.",
      "default": 27,
      "type": "number",
      "minimum": 2,
      "maximum": 40,
      "multipleOf": 1
    },
    "shift": {
      "title": "Shift",
      "description": "Shift value for the video. Must be between 1.0 and 10.0.",
      "default": 5,
      "type": "number",
      "minimum": 1,
      "maximum": 10
    },
    "num_interpolated_frames": {
      "title": "Num Interpolated Frames",
      "description": "Number of frames to interpolate between each pair of generated frames. Must be between 0 and 4.",
      "default": 1,
      "type": "number",
      "minimum": 0,
      "maximum": 4,
      "multipleOf": 1
    },
    "frames_per_second": {
      "title": "Frames Per Second",
      "description": "Frames per second of the generated video. Must be between 4 to 60. When using interpolation and `adjust_fps_for_interpolation` is set to true (default",
      "default": 16,
      "type": "number",
      "minimum": 4,
      "maximum": 60,
      "multipleOf": 1
    },
    "num_frames": {
      "title": "Num Frames",
      "description": "Number of frames to generate. Must be between 17 to 161 (inclusive).",
      "default": 81,
      "type": "number",
      "minimum": 17,
      "maximum": 161,
      "multipleOf": 1
    },
    "enable_prompt_expansion": {
      "title": "Enable Prompt Expansion",
      "description": "Whether to enable prompt expansion. This will use a large language model to expand the prompt with additional details while maintaining the original m",
      "default": false,
      "type": "boolean"
    },
    "video_quality": {
      "title": "Video Quality",
      "description": "The quality of the output video. Higher quality means better visual quality but larger file size.",
      "default": "high",
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "maximum"
      ]
    },
    "enable_safety_checker": {
      "title": "Enable Safety Checker",
      "description": "Run the input safety checker before generation.",
      "default": false,
      "type": "boolean"
    },
    "lora_path": {
      "title": "LoRA Path",
      "description": "URL or Hugging Face path to LoRA weights (e.g. username/repo or https://…).",
      "type": "string"
    },
    "lora_scale": {
      "title": "LoRA Scale",
      "description": "Strength of the LoRA effect. 1 = default weight, higher = stronger influence.",
      "default": 1,
      "type": "number",
      "minimum": 0,
      "maximum": 4
    },
    "lora_path_2": {
      "title": "LoRA Path 2",
      "description": "URL or Hugging Face path to a second set of LoRA weights.",
      "type": "string"
    },
    "lora_scale_2": {
      "title": "LoRA Scale 2",
      "description": "Strength of the second LoRA.",
      "default": 1,
      "type": "number",
      "minimum": 0,
      "maximum": 4
    },
    "lora_path_3": {
      "title": "LoRA Path 3",
      "description": "URL or Hugging Face path to a third set of LoRA weights.",
      "type": "string"
    },
    "lora_scale_3": {
      "title": "LoRA Scale 3",
      "description": "Strength of the third LoRA.",
      "default": 1,
      "type": "number",
      "minimum": 0,
      "maximum": 4
    },
    "aspect_ratio": {
      "type": "string",
      "enum": [
        "16:9",
        "9:16",
        "1:1"
      ]
    },
    "resolution": {
      "type": "string",
      "enum": [
        "480p",
        "580p",
        "720p"
      ]
    }
  },
  "required": [
    "model_id",
    "prompt"
  ],
  "additionalProperties": false
}

FAQ

How much does Wan 2.2 (T2V LoRA) 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 Wan 2.2 (T2V LoRA) fails?

Yes — failed generations are never charged. The credits are released back to your balance automatically.

Can I call Wan 2.2 (T2V LoRA) from the API?

Yes. Use POST /api/v1/generate with model_id: "fal-ai/wan/v2.2-a14b/text-to-video/lora". 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 Wan 2.2 (T2V LoRA)?

Start now →

No commitment. New accounts get 50 free credits on signup. See pricing.