Skip to main content
ArtEmotion
Video

Wan 2.2 (I2V LoRA)

Credit-based pricing. Supports image-to-video.

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

Inputs

  • Start image (required)

Example prompt

GTA-style protagonist slowly turns on a rain-slick rooftop to reveal the sprawling neon cityscape behind them, police helicopter searchlight sweeps across the buildings below, cinematic slow-motion reveal
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/image-to-video/lora.

POST/api/v1/generate35 fields · 3 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
end_image_urlstringOptionalHandled by the End Frame canvas slot.
num_inference_stepsnumberOptionalNumber of inference steps for sampling. Higher values give better quality but take longer. · Default: 27 · Range: 2–40
num_interpolated_framesnumberOptionalNumber of frames to interpolate between each pair of generated frames. Must be between 0 and 4. · Default: 1 · Range: 0–4
shiftnumberOptionalShift value for the video. Must be between 1.0 and 10.0. · Default: 5 · Range: 1–10
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: auto, 16:9, 9:16, 1:1
resolutionstringOptionalAllowed: 480p, 580p, 720p
image_urlstringRequiredFormat: uri
Minimal request example
{
  "model_id": "fal-ai/wan/v2.2-a14b/image-to-video/lora",
  "prompt": "GTA-style protagonist slowly turns on a rain-slick rooftop to reveal the sprawling neon cityscape behind them, police helicopter searchlight sweeps across the buildings below, cinematic slow-motion reveal",
  "image_url": "https://example.com/image"
}
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%2Fimage-to-video%2Flora",
  "title": "Wan 2.2 (I2V LoRA) generation request",
  "description": "Request body accepted by POST /api/v1/generate for fal-ai/wan/v2.2-a14b/image-to-video/lora.",
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string",
      "const": "fal-ai/wan/v2.2-a14b/image-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"
    },
    "end_image_url": {
      "title": "End Image Url",
      "description": "Handled by the End Frame canvas slot.",
      "type": "string"
    },
    "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
    },
    "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
    },
    "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
    },
    "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": [
        "auto",
        "16:9",
        "9:16",
        "1:1"
      ]
    },
    "resolution": {
      "type": "string",
      "enum": [
        "480p",
        "580p",
        "720p"
      ]
    },
    "image_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "model_id",
    "prompt",
    "image_url"
  ],
  "additionalProperties": false
}

FAQ

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

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

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

Yes. Use POST /api/v1/generate with model_id: "fal-ai/wan/v2.2-a14b/image-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 (I2V LoRA)?

Start now →

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