先说说几个核心判断:Runway生成失败这事儿,其实不是随机抽风,根子基本就扎在三个方向上——权限配置不对、输入素材的元数据不兼容,或者是缓存状态出了异常。从大量案例复盘来看,超过87%的失败,只要把前两个环节摸一遍就能解决,根本犯不着重启服务或者重装客户端。

检查项目权限与RBAC映射偏差
操作路径很直接:打开Runway Web UI右上角的头像,进“Team Settings”,然后切换到“Roles & Permissions”这个页签。
关键一步是确认当前用户所属的TeamRole,在目标Project里有没有被显式授予“Generator”权限。这里有个容易踩的坑——ProjectScope的隐式边界会导致TeamRole权限不生效,必须手动为这个Project单独分配一下才行。
如果用的是企业AD或LDAP同步账号,那还得额外留个心眼:去审计日志里看看,用户标识到底是empID还是邮箱。操作很简单,进入“Audit Logs”,筛选最近10分钟的操作,检查“User ID”字段里有没有带@符号。如果带了,说明OIDC声明映射还没完成,得联系IT管理员启用SCIM协议同步才能解决。
验证输入素材元数据合规性
这步操作,说穿了就是用几个小工具给素材做个“体检”。
方法一:用ffprobe诊断色彩空间与帧率
执行这条命令:ffprobe -v quiet -show_entries stream=color_primaries,color_transfer,r_frame_rate -of default=nokey=1:sep_char=, input.mp4。如果输出结果里出现了bt709或者1001/1000——也就是29.97fps——那就说明触发了Runway的隐式降级机制。
方法二:通过API响应反查实际处理分辨率
调用curl -X GET "https://api.runwayml.com/v1/projects/{project_id}/generations/{generation_id}" -H "Authorization: Bearer $RUNWAY_TOKEN",然后检查响应体里的processed_resolution字段,看它是不是低于input_resolution。如果存在差异,那基本可以断定是时间采样错位导致空间下采样了。
方法三:HDR内容必查Mastering Display Metadata
运行ffprobe -v quiet -show_entries stream=side_data_list -of default=nokey=1:sep_char=, input.mov,如果输出为空,就说明HDR元数据缺失了。解决办法是在导出前,手动注入SMPTE ST 2086 SEI块。
清除本地GPU Runtime缓存状态
这一步操作,不少人觉得没必要,但恰恰是很多“卡死”问题的症结所在。
第一步:停掉Runway服务进程
执行pkill -f "runway.server",强制终止所有worker进程,把后台清理干净。
第二步:清空模型缓存与CUDA上下文快照
删除$RUNWAY_MODEL_CACHE/.runway-gpu-state这个文件夹。这个目录里存的是GPU显存分配的快照,一旦损坏,生成任务就会一直卡在“Initializing GPU Context”这个阶段,动弹不得。
第三步:重置CUDA_VISIBLE_DEVICES绑定
先运行export CUDA_VISIBLE_DEVICES=0(根据实际GPU编号调整),再启动服务:python -m runway.server --gpu --workers 2。这一步绝对不能跳过,旧的环境变量残留会让Runtime误判设备拓扑,导致生成请求直接返回503。
