Kling v3 Pro vs Wan 2.7: CFG Scale vs Seed Reproducibility
Kling gives you CFG and native multi-prompt but no seed. Wan gives you seed and 1080p but no CFG. For complex motion, this decides whether you iterate or reproduce.
The missing parameter on each side
Kling v3 Pro has no seed on T2V. You cannot reproduce a clip exactly.
Wan 2.7 has no cfg_scale. You cannot dial prompt adherence vs creative motion interpretation, you get whatever balance the model picks.
Everything else is secondary. For complex motion work, this is the decision.

Spec comparison
| Feature | Kling v3 Pro T2V | Wan 2.7 T2V |
|---|---|---|
| Endpoint | `fal-ai/kling-video/v3/pro/text-to-video` | `fal-ai/wan/v2.7/text-to-video` |
| Resolution | Model-determined | 720p, 1080p |
| Duration | 3-15s (string enum) | 2-15s (integer) |
| Aspect ratios | 16:9, 9:16, 1:1 | 16:9, 9:16, 1:1, 4:3, 3:4 |
| Audio | `generate_audio` default true | Background music auto; `audio_url` for drive |
| Negative prompt | Yes (default `blur, distort, low quality`) | Yes |
| Seed | No | Yes |
| `cfg_scale` | Yes (0-1, default 0.5) | No |
| Prompt expansion | No | `enable_prompt_expansion` (default true) |
| Multi-prompt | Native `multi_prompt` array | No |
| Pricing | $0.14/sec | $0.10/sec |
Kling is 40% more expensive per second. 50 clips at 8 seconds each: Kling $56, Wan $40.

CFG scale for motion
cfg_scale on Kling runs 0 to 1, default 0.5. High (0.8+) forces prompt adherence; low (0.2-0.3) lets the model improvise physics naturalistically.
"A martial artist performs a spinning kick", at cfg 0.9 you get exactly the kick you described, stiffly. At cfg 0.3 you get naturalistic motion that may not match the description but looks real. Most complex motion work lands around 0.6-0.7.
Wan 2.7 gives you none of this. Motion physics are whatever the model picks.
Seed for iteration
Wan's seed lets you fix motion pattern, change one word in the prompt, render again, the shape of motion stays intact while the altered element shifts. You isolate one variable.
Kling has no seed. Every render is fresh. Almost-perfect clip missing one detail, your "fix" is an entirely different clip.
Kling's multi_prompt
Kling accepts an array of per-shot prompts with durations and generates one multi-shot video from it. Setup, impact, reaction, write all three and Kling renders them as one continuous clip with continuity between beats. Wan requires separate API calls per shot with frame chaining in I2V mode.
Honest weaknesses
Kling: no seed, no exact reproduction. No resolution tier, model decides. 40% more expensive. cfg_scale adds a tuning variable.
Wan: no cfg_scale, accept the model's motion interpretation. enable_prompt_expansion is on by default and will rewrite motion descriptions, turn off for motion work or "slow motion shards spreading outward" becomes whatever the expander preferred.
Different input shapes
Kling v3 Pro, CFG-tuned action with audio:
1result = fal_client.run(2 "fal-ai/kling-video/v3/pro/text-to-video",3 arguments={4 "prompt": "Martial artist performs a spinning jump kick in bamboo forest, leaves exploding from impact, slow motion",5 "negative_prompt": "stiff motion, cartoon physics",6 "aspect_ratio": "16:9",7 "duration": "8",8 "cfg_scale": 0.7,9 "generate_audio": True,10 },11)
Wan 2.7, reproducible physics, expansion off:
1result = fal_client.run(2 "fal-ai/wan/v2.7/text-to-video",3 arguments={4 "prompt": "A glass vase falls from a table and shatters in extreme slow motion, shards spreading outward",5 "negative_prompt": "fast cut, unrealistic physics",6 "resolution": "1080p",7 "aspect_ratio": "16:9",8 "duration": 8,9 "enable_prompt_expansion": False,10 "seed": 555,11 },12)
The Kling call has cfg_scale, no seed. The Wan call has seed and enable_prompt_expansion, no cfg. Not interchangeable, your orchestration layer must know which endpoint takes which.

Verdict
Reproducibility matters more than physics tuning, Wan 2.7 with expansion off and a fixed seed. Naturalistic physics and native audio matter more than exact regenerations, Kling v3 Pro, cfg_scale: 0.7 as a starting point.