-
Motion Prompt Generation: Extremely strong motion prompts are being generated
- Cinematic: "Powerful waves cascading with dramatic force, surface reflections shimmering intensely"
- Dynamic: "Dynamic leaves swaying rhythmically, branches dancing in strong wind"
- Motion Score: 12/15 motion keywords in extreme tests
-
API Integration: Prompts are reaching Runway AI correctly
- Model: gen4_turbo ✅
- Parameters: model, prompt_image, prompt_text, ratio, duration ✅
- Sanitization: Working properly ✅
-
System Architecture: All components functioning
- Image generation via DALL-E ✅
- Motion prompt enhancement ✅
- Video generation API calls ✅
Despite extremely strong motion prompts, videos appear static with only audio playing.
- Free/Trial accounts might have motion limitations
- API quota restrictions could reduce video quality
- Model access levels may vary by subscription
- gen4_turbo model might need additional parameters
- Missing motion parameters in API call
- Model version might not support full motion
- Generated images might not be suitable for animation
- Image resolution/format could affect motion generation
- Content complexity might impact animation quality
Current parameters sent to Runway:
task = self.client.image_to_video.create(
model=model, # "gen4_turbo"
prompt_image=image_url, # DALL-E generated image
prompt_text=motion_prompt, # Strong motion prompt
ratio=ratio, # "1280:720"
duration=duration # 5 or 10 seconds
)Potentially Missing Parameters:
seed- for consistent motion generationmotion_bucket_id- motion intensity controlconditioning_frame- motion conditioningnoise_aug_strength- motion variation
# Check Runway account tier and limitations
# Upgrade to paid plan if using free tiertask = self.client.image_to_video.create(
model="gen4_turbo",
prompt_image=image_url,
prompt_text=motion_prompt,
ratio=ratio,
duration=duration,
# Add these potential parameters:
seed=12345, # Consistent generation
motion_bucket_id=127, # Higher motion intensity
conditioning_frame=1, # Motion conditioning
noise_aug_strength=0.1 # Motion variation
)# Test with different models
models_to_try = [
"gen3a_turbo", # Previous generation
"gen2", # Older stable model
"gen1" # Basic model
]# Add animation-specific enhancements to DALL-E prompts
enhanced_prompt = f"{image_prompt}, high contrast, clear subjects, animation-ready, depth of field, cinematic lighting"If Runway continues to produce static videos, add FFmpeg-based motion:
def add_ffmpeg_motion(static_video_path, motion_type="zoom"):
"""Add motion effects using FFmpeg as fallback."""
if motion_type == "zoom":
cmd = [
'ffmpeg', '-i', static_video_path,
'-vf', 'zoompan=z=\'zoom+0.002\':d=125',
'-c:a', 'copy', output_path
]
elif motion_type == "pan":
cmd = [
'ffmpeg', '-i', static_video_path,
'-vf', 'crop=iw*0.9:ih*0.9:iw*0.05+t*10:ih*0.05',
'-c:a', 'copy', output_path
]- Check Runway Account - Verify subscription tier
- Test Different Duration - Try 10 seconds instead of 5
- Simplify Motion Prompts - Test with basic prompts
- Add motion parameters to Runway API calls
- Test different models (gen3a_turbo, gen2)
- Implement parameter experimentation
- FFmpeg motion effects as backup
- Alternative AI video services (Stable Video Diffusion)
- Hybrid approach (Runway + FFmpeg enhancement)
- ✅ Motion prompts: PERFECT (12/15 motion score)
- ✅ API integration: WORKING
- ❌ Video output: STATIC
- ❓ Root cause: UNKNOWN (likely Runway limitations)
- Implement missing API parameters
- Test with enhanced image generation
- Add FFmpeg motion fallback
- Consider alternative video generation services
The issue is NOT with our motion prompt generation - our prompts are excellent. The problem lies in either Runway API limitations or missing parameters.