IT之家 6 月 7 日消息,据英国《金融时报》报道,由于担忧人工智能生成的不准确内容会扰乱司法流程,英国多个警察部门已接到通知,停止使用人工智能系统撰写法庭陈述及开展其他刑事司法相关工作。 英国警方人工智能中心( Police.AI )负责人亚历克斯・默里表示,他已介入干预部分警队。这些警队在未完成全面合规评估的情况下,就开始使用市面上的商用人工智能工具。 “我们已经叫停了部分相关应用。”默里称,他告知相关警队:“立刻暂停使用,我们需要放缓推进节奏。” 他补充道,应用于刑事司法体系的任何技术,其准确性都必须达到排除合理怀疑的严苛标准。 此次叫停行动,凸显出生成式人工智能在警务领域的应用争议日益加剧。默里负责监管英格兰和威尔士地区警方的人工智能使用工作。他表示,这项技术最终有望加快案件侦查与证据处理效率,但全面推广使用前必须先建立完善的安全保障机制。 Police.AI 于今年正式成立,是英国政府为提升警务整体效率推出的改革举措之一。英国内政大臣沙巴娜・马哈茂德表示,该项目三年合计获 1.15 亿英镑(IT之家注:现汇率约合 10.46 亿元人民币)资金支持,投入使用后节省的人力时间,相当于为英格兰和威尔士现有的约 14.5 万名在职警员增配 3000 名警力。 据默里介绍,部分警队开始借助商用人工智能系统,协助警员将审讯笔录整理为法庭陈述文书,警方人工智能中心随即出手干预。 默里并未透露涉及的具体警队,但他表示,警方同时也收到提醒:在完成全部合规审查前,不得将人工智能应用于其他警务工作。 “我们明确告知部分警队:目前不能这么做,因为全套审核与制衡流程尚未走完。”他说道。 他特别指出,证据披露清单的编制工作需要格外谨慎。这类清单是庭审前必须提交给辩方的证据记录。使用人工智能处理该项工作的警队,必须说明该技术的训练方式与实际应用流程。 默里坦言,警方此前使用人工智能已有过前车之鉴。去年,西米德兰兹郡警方在整理一份禁令佐证材料时,使用了微软智能助手 Copilot 生成的内容。这份材料旨在申请禁止某足球俱乐部球迷观赛,其中竟编造出以色列特拉维夫马卡比队的一场过往赛事。相关球迷原定前往现场观看该队与阿斯顿维拉队的比赛。 这起事件进一步引发了各界对人工智能幻觉问题的广泛担忧,人工智能幻觉也就是人工智能系统生成看似真实、实则虚假信息的现象。 “目前所有警队都已出台规范使用 Copilot 的相关制度,规定警员必须核查该工具生成的所有内容。”默里说。 尽管存在诸多隐患,但默里认为,经过全面测试的人工智能系统,能够为深陷工作量激增、案件侦查日趋复杂困境的警队带来显著助益。 监控录像分析就是极具前景的应用方向。现阶段,警员往往要耗费数小时人工回看录像,从中搜寻嫌疑人。 默里表示:“只要指令设置得当,人工智能完全可以做到按要求检索,比如‘找出戴红帽子的男子’。在证据尚存关键价值的黄金数小时乃至一两天内,我们就能锁定目标、上门抓捕,当场查获带有血迹的鞋证。” 他还提到,人工智能有能力处理海量电子证据,儿童性侵案件侦查便是典型场景。目前警方人工智能中心正在研发一款工具,可对查扣设备中的图片进行识别与分类,减少警员直接浏览不良影像的次数。 默里说:“警员只需抽样核验即可,不必逐一查看全部画面。这类内容会对人的身心造成极大伤害。我认为,只要配套完善监管规则、使用规范与人员培训,自动化技术带来的益处远大于弊端。”
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
最近接手个安卓项目 看了下用的架构还有写法 想起了刚入行的时候 差不多 10 年别人写的代码风格 好奇大家那种证券 银行 或者大型项目是不是都是很多年的项目啊 有种既亲切有陌生的感觉。。。
做几个任务,遇到问题首先是做一个仅仅针对改问题通过关键词啥的进行判断的优化,而不是通用性的修复bug,有点烦。 用的是gpt5.5 xhgih 2 个帖子 - 2 位参与者 阅读完整话题
最近我在整理 GPT Image 2 的图片 Prompt 。 先看 3 张图: 产品图 Prompt Prompt 结构 图到视频工作流 很多人写 AI 图片 Prompt 时,会这样写: 生成一张高级感产品图,真实摄影,8K ,商业海报。 这类 Prompt 可以出图,但很难稳定复用。 因为模型不知道你真正要的是: 白底电商主图,还是品牌广告海报? 产品要居中,还是要留出文字区? 文字要不要可读? 是摄影图、3D 渲染、插画,还是 UI 截图? 是否需要保留参考图的形状、颜色、Logo 、比例? 成品用在小红书、独立站、亚马逊、电商详情页,还是 App 首屏? 我更倾向于把 GPT Image 2 Prompt 当成一份“视觉设计 Brief”,而不是一串形容词。 先给一个通用公式 多数可复用的图片 Prompt ,都可以拆成: 用途:这张图用在哪里 主体:画面主角是什么 版式:主体、文字、留白、模块怎么摆 风格:摄影、3D 、插画、UI 、信息图等 细节:材质、光线、背景、镜头、比例 文字:需要出现哪些精确文字,放在哪里 约束:不要乱码、不要变形、不要水印、不要多余 Logo 如果只写“高级感”,模型会自由发挥。 如果写清用途和版式,结果更像能交付的设计图。 案例 1:产品摄影图 这张图适合拆产品摄影 Prompt 。 它不是单纯靠“高级感”,而是把产品图拆成了几个明确条件: 产品是什么 角度怎么拍 光线是什么 哪些细节必须保留 输出要适配哪些使用场景 可复用 Prompt: 生成一张 [产品类型] 商业摄影图。 产品以 [角度] 展示,位于 [干净背景 / 工作台 / 户外场景] 。 保持产品的形状、比例、颜色、材质和关键结构准确。 使用 [柔光 / 侧光 / 高反差光 / 自然光] 突出 [卖点] 。 画面用途是 [电商主图 / 品牌广告 / 详情页头图] 。 不要添加虚假 Logo 、乱码文字、额外按钮、变形结构或无关道具。 适合改成: 手表广告 耳机广告 鞋子详情页 饮料罐商业摄影 护肤品瓶身图 案例 2:Prompt 结构图 这张图对应的是一个更通用的 Prompt 结构: Prompt:一句话任务 Subject:主体 Composition:构图 Constraints:限制条件 很多失败的 AI 图片,不是模型不会画,而是 Prompt 没有把这四层写清楚。 一个更稳的写法: 任务:生成一张 [用途] 图片。 主体:画面主体是 [主体] ,必须保持 [关键外观] 。 构图:主体位于 [位置] ,画面保留 [文字区 / 留白区 / 模块区] 。 风格:整体为 [摄影 / 插画 / 3D / UI / 海报] 。 限制:不要乱码、不要水印、不要多余 Logo 、不要结构变形。 这个结构特别适合做: 海报 产品图 App UI 信息图 角色设定 社媒封面 案例 3:从单张图到视频工作流 这张图不是单张图片生成,而是一个工作流: 首帧图 -> 参考图 -> 分镜 -> Motion Prompt -> 视频结果 如果你后续要从图片进入视频生成,这个结构很有用。 图片 Prompt 不只是“生成一张图”,还可以为后续视频做准备: 生成一张视频首帧图。 主体是 [产品/角色/场景] 。 构图要适合后续动画,主体位于画面中心或三分线位置。 背景包含可运动元素,如水花、云层、灯光、风、布料。 光线和色调保持电影感。 不要添加复杂文字,不要让主体被遮挡。 首帧图要注意: 主体要清楚 背景不能太乱 光线方向要明确 适合后续运动 不要塞太多文字 再看 3 个视频工作流 CSDN 对外链视频的支持有时不稳定。如果编辑器里 <video> 不显示,可以删掉视频标签,只保留下面的视频链接。 产品广告工作流 <video controls width="100%" src=" https://cdn.nano-banana-2-ai.com/uploads/workflows/gpt-image-2/product-ad/product-ad-result.webm "></video> 视频链接: https://cdn.nano-banana-2-ai.com/uploads/workflows/gpt-image-2/product-ad/product-ad-result.webm 这个例子适合看“产品首帧图 -> 广告动态效果”的衔接。图片 Prompt 里要提前给后续运动留空间,比如水花、光线、背景层次和主体位置。 角色动作工作流 <video controls width="100%" src=" https://cdn.nano-banana-2-ai.com/uploads/workflows/gpt-image-2/character/character-result.webm "></video> 视频链接: https://cdn.nano-banana-2-ai.com/uploads/workflows/gpt-image-2/character/character-result.webm 角色类图片不要只追求单张好看,更重要的是身份一致:发型、服装、五官比例、道具、色彩要能在后续分镜里继续复用。 Storyboard 工作流 <video controls width="100%" src=" https://cdn.nano-banana-2-ai.com/uploads/workflows/gpt-image-2/storyboard/storyboard-result.webm "></video> 视频链接: https://cdn.nano-banana-2-ai.com/uploads/workflows/gpt-image-2/storyboard/storyboard-result.webm Storyboard 的重点不是“画得多炫”,而是让镜头顺序清楚。每一帧最好都写清主体、动作、景别、镜头方向和情绪。 案例 4:电商主图和场景图要分开写 产品图常见失败原因:一条 Prompt 同时想做主图、场景图、海报、详情页。 建议分开: 主图:产品清楚,背景干净,形状准确。 场景图:展示使用情境,允许道具和环境。 卖点图:需要文字区、箭头、局部放大或信息模块。 社媒广告:需要情绪、冲击力和标题区域。 主图模板: 生成一张 1:1 电商产品主图。 产品是 [产品] ,正面居中展示。 白色背景,柔和阴影,边缘清晰。 产品占画面 70%,完整可见。 不要道具,不要文字,不要虚假 Logo ,不要变形。 场景图模板: 生成一张 16:9 产品生活方式场景图。 产品是 [产品] ,放在 [场景] 中。 使用自然光和真实阴影。 右侧保留干净留白,方便后期加标题。 保持产品形状和材质准确,不要添加无关物品。 案例 5:海报文字要短、准、少 AI 图片里最容易翻车的是文字。 不要写: 加一些高级标题和说明文字 建议写: 生成一张竖版活动海报。 主标题只写: [精确标题] 。 副标题只写: [精确副标题] 。 文字放在顶部,使用粗体无衬线字体。 主视觉位于画面中央。 不要添加其他文字、乱码、伪 Logo 或多余标签。 经验: 主标题尽量 2 到 6 个字 副标题尽量一行 不要同时要求太多小字 如果文字重要,生成后一定人工检查 案例 6:角色设定要写成资产,不要只写美图 如果只是发社媒,一张漂亮角色图就够了。 但如果要做 IP 、游戏、短剧、贴纸包,就要写成角色设定表: 生成一张角色设定表。 角色身份是 [身份] ,年龄和气质是 [描述] 。 包含正面、侧面、背面、3 个表情、2 个动作姿势、核心道具和配色说明。 风格为 [动漫 / 3D / 写实 / Q 版 / 游戏概念设定] 。 所有视图保持同一个角色身份、服装、发型和比例。 不要改变五官,不要出现多余角色,不要乱码标注。 角色设定表的价值是复用,而不是单张图的视觉冲击。 最后给一个总模板 生成一张 [图片用途] 。 主体是 [主体] ,用于 [平台/场景] 。 画面比例为 [比例] 。 构图为 [主体位置 + 留白位置 + 文字区域] 。 风格为 [摄影 / 3D / 插画 / UI / 信息图 / 海报] 。 重点突出 [卖点或视觉重点] 。 必须保持 [产品形状 / 人物身份 / 品牌色 / 文字内容] 。 只允许出现以下文字: [精确文字] 。 不要添加乱码、水印、多余 Logo 、变形结构、无关元素。 建议不要收藏一堆“神奇咒语”,而是按用途保存模板: 产品主图模板 海报文字模板 UI 截图模板 信息图模板 角色设定模板 Storyboard 模板 这样下次只需要替换主体、比例、颜色、标题,就能快速得到新图。 完整 Prompt 库 我把完整可检索版本整理在这里,方便按案例标题查 Prompt: GPT Image 2 Prompt Library: https://gptimg2.art/prompts/gpt-image-2 建议先从一种用途开始,比如产品主图或 UI Mockup ,挑 10 条类似案例拆结构。比起一次性看几千条 Prompt ,这样更容易真正变成自己的能力。
最近我在整理 Seedance 2.0 相关的视频 Prompt 。 一开始我以为重点是找“更炫的关键词”,比如电影感、大片质感、8K 、超写实、运镜高级。 但看了很多真实案例以后,我发现真正有复用价值的 Prompt ,通常不是靠堆风格词,而是靠更清楚的结构。 尤其是视频 Prompt ,和图片 Prompt 不太一样。 图片 Prompt 更关注主体、风格、构图和细节;视频 Prompt 还要额外交代: 画面里谁在动 怎么动 镜头怎么跟 每个时间段发生什么 声音、台词、口型要不要同步 人物、产品、服装是否要保持一致 哪些错误需要明确禁止 这篇文章主要分享我从一批 Seedance 2.0 Prompt 里总结出来的 8 类写法。 如果你也在做 AI 视频、短视频分镜、产品广告、图生视频或角色一致性测试,可以直接拿这些结构去改。 为了方便直观看,下面我会在每类写法里放一个案例缩略图和视频示例。建议先看结果,再看 Prompt 结构,这样更容易理解为什么某些写法会更稳定。 先说结论 整理完这些 Prompt 后,我有几个比较明确的感受: 视频 Prompt 最重要的不是“形容词”,而是“动作和时间结构”。 想要稳定,最好把一个视频拆成 2 到 4 个镜头段落。 图生视频要优先说明“保留什么”,再说明“让它怎么动”。 产品广告类 Prompt 要写材质、卖点、镜头和环境反应。 人物视频要写脸部一致性、服装一致性、动作幅度和口型要求。 动作戏不能只写“打斗很燃”,要写清空间关系、攻击方式和镜头节奏。 声音不是附加项,台词、环境声、音乐节奏都会影响视频理解。 发布或复用公开 Prompt 时,最好保留来源和作者信息,避免把别人的完整案例当成自己的原创。 下面按场景拆。 一、通用视频 Prompt:先把“镜头计划”写出来 很多人写视频 Prompt 时,会像写图片一样: 一个女孩在城市街头,电影感,超真实,8K ,高级光影。 这类描述不是完全没用,但它对视频来说太空了。 更稳的写法是把 Prompt 当成一个小分镜。 可复用结构: 主题:这个视频要表达什么 主体:人物 / 产品 / 动物 / 场景 / 角色 场景:时间、地点、天气、环境元素 动作:主体在几秒内做什么 镜头:推、拉、摇、移、跟拍、环绕、特写、俯拍 风格:写实、广告片、动漫、纪录片、MV 、电影短片 时间段:0-5 秒、5-10 秒、10-15 秒分别发生什么 声音:环境声、音乐、台词、音效 限制:不要字幕、水印、变脸、抖动、穿帮、畸形 一个简单模板: 生成一个 10 秒视频,主题是 [主题] 。 主体是 [主体] ,位于 [场景] 。 整体风格为 [风格] ,画面比例 [比例] 。 0-3 秒: [第一个动作和镜头] 3-7 秒: [第二个动作和镜头] 7-10 秒: [收尾动作和画面] 要求保持 [需要稳定的元素] 一致。 避免 [常见错误] 。 这个模板不复杂,但比“高级电影感”可控很多。 案例预览:街头赛车镜头 <video controls width="100%" src=" https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/3a7fb0a6d706b9f568479bb720ce1ad4/downloads/default.mp4 "></video> 视频示例: https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/3a7fb0a6d706b9f568479bb720ce1ad4/downloads/default.mp4 这个案例适合观察“镜头计划”的价值。它不是只写一辆车很快,而是把车内特写、按钮、外部跟拍、低机位轮胎、街道追逐这些镜头串起来,所以画面更像一段剪辑好的短片。 二、电影短片类:氛围要写,动作更要写 电影短片 Prompt 常见问题是太依赖氛围词。 比如: 日系青春电影,暧昧,阳光,教室,纯爱,电影感。 这能给模型一个方向,但还不够。 如果想让结果更像一段视频,而不是一张会动的海报,需要写清人物关系、微表情、镜头推进和时间变化。 可复用结构: 故事氛围 + 场景细节 + 人物关系 + 微动作 + 分段镜头 + 声音设计 + 一致性要求 示例结构: 15 秒日系青春短片,空教室,下午金色阳光透过百叶窗,桌面有细小尘埃漂浮。 0-4 秒:中景缓慢推进到两人侧脸。女生低头写字,发丝被微风轻轻吹动,呼吸自然。 4-9 秒:切到男生近景。他偷偷看向女生,发现她停笔后慌忙移开视线,手指轻微发抖。 9-15 秒:两人视线相遇,女生短暂愣住后低头,轻声说一句台词,男生小声回应。 要求:脸部、发型、校服保持一致;口型自然;动作克制;不要字幕、水印和夸张表情。 声音:远处蝉鸣、笔尖划纸声、很轻的钢琴。 案例预览:日系青春短片 <video controls width="100%" src=" https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/1402.mp4 "></video> 视频示例: https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/1402.mp4 这个案例里最值得学的不是“纯爱”“电影感”这些词,而是它把呼吸、眼神、手指发抖、短暂停顿、低声台词都写进去了。AI 视频里,微动作越具体,结果越容易像一段真实表演。 重点不是把故事写长,而是把“可拍出来的动作”写清楚。 三、产品广告类:不要只写产品外观,要写展示逻辑 产品广告 Prompt 如果只写“高级产品广告”,经常会出现两个问题: 产品很漂亮,但卖点不清楚。 镜头很好看,但产品形状容易变。 这类 Prompt 最好按广告片逻辑写: 产品主体 + 材质细节 + 核心卖点 + 镜头运动 + 环境反应 + 禁止变形 可复用结构: 生成一个 [产品] 广告短片。 产品位于 [场景] ,材质为 [材质] ,核心卖点是 [卖点] 。 0-3 秒:产品静态亮相,镜头 [推近 / 环绕 / 低角度] 。 3-7 秒:展示 [功能或材质变化] ,突出 [细节] 。 7-10 秒:产品完成最终姿态,背景光线和反射强调高级感。 要求产品结构稳定,不要多余文字,不要标签变形,不要出现不存在的按钮或接口。 如果是手表、耳机、鞋、饮料、护肤品这类产品,最好额外写: 表面材质 反光方式 是否有水滴、烟雾、灰尘、冰块 镜头距离 产品是否旋转 标签或 Logo 是否必须清晰 这里要特别注意:如果涉及真实品牌、参数、认证标识,生成后一定要人工复核。 案例预览:高定幻想广告 <video controls width="100%" src=" https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/594.mp4 "></video> 视频示例: https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/594.mp4 这个案例可以当成“材质驱动广告片”的参考。它不是简单写一条裙子很高级,而是写了液态青花瓷、镜面盐湖、低角度镜头、碎裂成水墨燕子、最后进入流体漩涡。产品、服装、艺术装置类视频都可以参考这种“材质变化 + 镜头段落 + 视觉结果”的写法。 四、图生视频:先固定首帧,再控制运动 图生视频的核心不是“让图片动起来”这么简单。 更准确地说,它是在一张参考图的基础上控制变化范围。 所以 Prompt 里要先写清楚保留项: 保持人物脸部、五官、发型、服装、产品形状、主色调、构图一致 然后再写运动项: 只让头发、衣摆、镜头、光线、背景粒子发生轻微变化 可复用结构: 基于参考图生成视频。 必须保持 [脸部 / 产品 / 服装 / 构图 / 颜色] 一致。 允许变化的是 [动作 / 镜头 / 光线 / 背景 / 特效] 。 0-4 秒: [轻微动作] 4-8 秒: [镜头变化] 8-10 秒: [收尾姿态] 禁止改变五官、脸型、产品结构、服装颜色和主体身份。 图生视频里,限制条件非常重要。 如果你只写“让她跳舞”“让产品旋转”,模型可能会顺手改掉脸、衣服、产品结构或背景。 更稳的思路是: 先说明不能变的部分 再说明可以动的部分 最后说明不要出现的错误 案例预览:参考图角色一致性 <video controls width="100%" src=" https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/846845dc60598558687d67d6abcc1c3d/downloads/default.mp4 "></video> 视频示例: https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/846845dc60598558687d67d6abcc1c3d/downloads/default.mp4 这类案例里常见写法是 exactly matching @img1 、 character consistency 。它的重点不是把参考图重新描述一遍,而是告诉模型:参考图里的角色身份、脸、服装和整体气质必须保持,然后只让角色在新场景里运动。 五、变装和转场类:写清“转场机制” 变装类视频很容易出效果,但也很容易乱。 很多人只写: 古风美女连续变装,丝滑转场,抖音爆款。 这不够。 变装 Prompt 最关键的是转场机制。 常见转场方式包括: 袖子扫过镜头 团扇遮面 转身遮挡 披帛甩动 手掌靠近镜头 光效覆盖主体 裙摆扫过画面 可复用结构: 人物设定 + 初始造型 + 每秒服装变化 + 每次转场遮挡方式 + 镜头稳定要求 + 节奏要求 示例结构: 10 秒古风变装视频,中景跟拍,人物脸部保持一致。 0-1 秒:素色襦裙,站定垂手,暖调柔光。 1-2 秒:转身拂袖,衣袖扫过镜头完成变装,换成白色仙裙。 2-3 秒:团扇遮面,扇子移开后换成粉色襦裙。 3-4 秒:裙摆扫过画面,换成蓝绿色渐变古风裙。 ... 9-10 秒:回到初始造型,镜头稳定收尾。 要求:转场自然,服装变化明确,脸部一致,不要生硬切镜,不要多余文字。 这类 Prompt 的重点是:每一次变化都要有“遮挡动作”。 没有遮挡动作,模型就很容易把变装做成跳帧。 案例预览:古风变装转场 <video controls width="100%" src=" https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/1967.mp4 "></video> 视频示例: https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/1967.mp4 看这类案例时,建议重点观察每次变装前有没有“遮挡动作”。袖扫、转身、手掌、团扇、光效,本质上都是给模型一个合理的视觉过渡点。 六、动作和特效类:先写空间关系,再写打斗 动作戏最怕只写“打得很燃”。 因为模型不知道谁从哪里来,攻击谁,镜头站在哪里。 动作类 Prompt 可以这样拆: 场地 + 角色位置 + 攻击路线 + 防守动作 + 特效类型 + 镜头节奏 + 最终结果 例如真人动漫对战、武侠、机甲、怪兽、街头格斗,都适合这种结构。 可复用结构: 场景: [地点、天气、地面状态、背景元素] 角色 A: [服装、武器、站位、能力] 角色 B: [服装、武器、站位、能力] 0-5 秒:角色 A 蓄力,特效如何出现,镜头如何靠近。 5-10 秒:角色 B 反击,移动路线和速度如何表现。 10-15 秒:双方碰撞,特效如何爆发,环境如何受到影响。 要求动作清晰,不要血腥,不要肢体畸形,不要镜头乱跳。 动作戏里的“环境反应”也很重要。 比如: 落叶被气流卷起 地面积水被震开 玻璃反射闪光 雾气被冲散 尘土被脚步带起 这些细节会让特效不只是贴在画面上,而是和场景产生关系。 案例预览:真人动漫对战 <video controls width="100%" src=" https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/189.mp4 "></video> 视频示例: https://github.com/YouMind-OpenLab/awesome-seedance-2-prompts/releases/download/videos/189.mp4 这个案例把动作戏拆成“起式、突进、对撞”三段。每段都说明角色位置、能力效果和环境反应,所以特效不是随机闪光,而是围绕动作推进。 七、台词和声音类:口型、停顿和音效要分开写 如果视频里有台词,Prompt 不能只写一句对白。 最好把这些信息拆开: 谁说话 什么语气 什么时候说 口型是否同步 停顿多长 背景声是什么 音乐节奏是否配合动作 可复用结构: 台词: [具体台词] 语气: [低声、紧张、兴奋、克制、冷幽默] 口型: [自然、轻微、不要夸张] 停顿: [短暂停顿、迟疑、打断] 环境声: [风声、雨声、车声、脚步声、纸张声] 音乐: [轻钢琴、电子鼓点、低频氛围、无音乐] 示例: 女生轻声说:“你在看什么?” 语气害羞,音量低,停顿自然,口型轻微变化,不要夸张张嘴。 男生停顿 0.4 秒后小声回答:“没什么。” 背景有远处蝉鸣和笔尖划纸声,最后进入很轻的钢琴。 如果台词很重要,建议不要把它藏在长段落里,单独列出来更清楚。 案例预览:动作喜剧台词 <video controls width="100%" src=" https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/bb5d9aa4e44f9d44900e0a5781fa3e47/downloads/default.mp4 "></video> 视频示例: https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/bb5d9aa4e44f9d44900e0a5781fa3e47/downloads/default.mp4 这类 Prompt 很适合学习台词节奏。它把角色对白、反应、动作和音效放在同一个时间线上,读起来像短剧脚本。做 AI 短剧、广告口播、剧情反转时,这种格式比单独写一句台词更稳。 八、物理写实类:写清运动原因和环境反馈 有些视频看起来“不真实”,不是因为画质低,而是因为运动没有物理原因。 比如鹰飞行、赛车漂移、水滴飞溅、衣服摆动、人物落地,都需要交代力和反馈。 可复用结构: 主体运动 + 受力变化 + 环境反馈 + 镜头跟随 + 真实限制 示例结构: 一只金雕从悬崖起飞,翅膀展开时羽毛分离明显,气流阻力让初级飞羽独立弯曲。 镜头使用稳定航拍跟随,中距离平行移动。 金雕接近城市屋顶时逐渐减速,爪子前伸,落在金属招牌上。 落地瞬间招牌轻微震动,羽毛自然收拢,头部有微小观察动作。 要求真实鸟类解剖结构,真实重量转移,避免夸张慢动作和不自然插帧。 写实类 Prompt 里,最有用的不是“超真实”,而是: 什么力量导致了什么运动 运动又让环境产生了什么反馈 案例预览:金雕物理运动 <video controls width="100%" src=" https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/a6bdca94d1ce92fba822adab24159aa1/downloads/default.mp4 "></video> 视频示例: https://customer-qs6wnyfuv0gcybzj.cloudflarestream.com/a6bdca94d1ce92fba822adab24159aa1/downloads/default.mp4 这类写法尤其适合动物、飞行、赛车、液体、火焰、布料和机械装配。只写“真实”不够,要写清楚气流、重量、阻力、接触、震动和环境反馈。 我整理 Prompt 时保留的字段 如果你也想做自己的 Prompt 库,建议每条至少保留这些字段: 标题 原始 Prompt 模型 视频时长 画面比例 标签 视频结果 缩略图 作者或来源 适用场景 可复用结构 这样后续复盘会方便很多。 比如同样是“人物变身”,你可以对比: 哪些 Prompt 写了时间段 哪些 Prompt 写了参考图一致性 哪些 Prompt 写了声音 哪些 Prompt 写了禁止项 哪些 Prompt 写了环境反馈 看多了以后会发现,高质量 Prompt 往往不是“更长”,而是“更像一个可执行的拍摄计划”。 一个更稳的使用流程 我现在更推荐这个流程: 先选一个明确场景 -> 找一个相似 Prompt -> 只替换主体、场景和风格 -> 保留镜头结构 -> 生成第一版 -> 只改一个变量 -> 保存有效版本 不要每次都从零写。 AI 视频 Prompt 最值得积累的,不是某一句神奇咒语,而是一套能反复改主题的结构。 写在最后 这次整理最大的收获是:视频 Prompt 本质上更接近“分镜脚本”,而不是普通描述词。 如果你只写风格,结果会很随机。 如果你写清主体、动作、镜头、时间段、声音、限制条件和一致性要求,结果通常更容易复盘,也更容易二次修改。 我把完整可检索版本整理到了这里,方便按案例查 Prompt: Seedance 2.0 Prompt Library: https://cdance.ai/prompts/seedance-2-0 站里也整理了 GPT Image 2 和 Nano Banana Pro 的 Prompt ,但我建议先不要贪多。先从一种模型、一类场景、一个可复用模板开始,慢慢建立自己的 Prompt 库。 希望这些结构对你写 AI 视频 Prompt 有帮助。
想起茴香的茴子有四种写法,孔乙己先生是高明的,他如果生在这个时代,就能用不同的思路让 AI 帮他解决问题了。 Python 列表去重的 20 种实现方式 列表(数组)去重是最常见的算法,非常简单,但不同实现方式背后的差异巨大。AI 时代,可以不手写代码了,但需要知道代码背后的原理,这样才能更好地指导 AI 编程。 最简单的思路 新建列表,遍历原列表,当原列表的元素不在新列表的,则添加到新列表中。 def unique(data): # 新建 list new_list = [] for item in data: # 原 list 中的项是否存在于新 list 中,不存在则添加。这是 O(n)操作 if item not in new_list: new_list.append(item) return new_list 这种写法最直观易懂,但每次 not in 都要遍历整个 new_list ,复杂度为 O(n²)。 如何降低复杂度呢?可以从以下角度思考: 哈希集合 / 字典:把查询从 O(n) 可压到 O(1),整体 O(n) 先排序:相同元素两两比较再去重,O(nlogn),但会破坏原顺序 函数式 / 递归:写法上换一种风格,适用不同场景,本质仍是上面的方式 第 1 类:基础循环(方法 1-8 ) 策略原理:遍历原数组,直接用双重循环或下标比较找出重复项。每一步判断"是否存在"都是 O(n),整体复杂度 O(n²)。 适用场景:这里主要是展示算法原理,用于教学示例,弄懂编程原理。生产代码不建议使用。 # 方法 1:最基础的线性查找 def unique_v1(data): new_list = [] for item in data: # in 在列表上是 O(n) 扫描,整体 O(n²) # 该元素不在新 list 则添加 if item not in new_list: new_list.append(item) return new_list # 方法 2:用下标遍历 def unique_v2(data): new_list = [] for i in range(len(data)): # 与第 1 种相同,遍历方式换成 range ,复杂度不变 if data[i] not in new_list: new_list.append(data[i]) return new_list # 方法 3:列表推导式 def unique_v3(data): new_list = [] # 利用列表推导式的副作用追加元素,写法简化,本质与前面一样 [new_list.append(i) for i in data if i not in new_list] return new_list # 方法 4:通过元素首次出现位置判断 def unique_v4(data): new_list = [] for i in range(len(data)): # data.index(x) 返回 x 在 data 里第一次出现的下标 # 当前下标恰好等于该值时,说明该元素是首次出现,将首次出现的添加到新 list if i == data.index(data[i]): new_list.append(data[i]) return new_list # 方法 5:原地删除(从右往左扫描) def unique_v5(data): l = len(data) while l > 0: l -= 1 i = l while i > 0: i -= 1 # 在 [0, l) 区间里寻找与 data[l] 相同的元素 # 找到就删后面那个,保留前面的 if data[i] == data[l]: del data[l] break return data # 修改原列表,空间 O(1) # 方法 6:原地删除(从左往右扫) def unique_v6(data): l = len(data) i = 0 while i < l: j = i + 1 while j < l: # 把 data[i] 后面所有等于它的元素删掉 if data[i] == data[j]: del data[j] l -= 1 # 列表变短,长度同步更新 else: j += 1 i += 1 return data # 方法 7:用 try-except 替代 in def unique_v7(data): new_list = [] for item in data: try: # index 找不到会抛 ValueError new_list.index(item) except ValueError: # 找不到才追加 new_list.append(item) return new_list # 实际上不会这么使用——拿异常处理正常的控制流,性能和可读性都吃亏 # 方法 8:双层循环+下标判断 def unique_v8(data): new_list = [] for i in range(len(data)): j = 0 while j <= i: # 看 data[i] 在它之前是否出现过 if data[i] == data[j]: # 只有 j == i (前面都没遇到)时才追加 if i == j: new_list.append(data[i]) break j += 1 return new_list # 内层只跑到 i 而非 n ,比较次数约为方法 1 的一半,但渐进复杂度仍是 O(n²) 第 2 类:哈希表(方法 9-12 ) 策略原理:利用 dict 或 set 的键( Key )唯一性来记录"已经出现的元素"。哈希结构的查询是 O(1),因此整体降到 O(n)。代价是需要 O(n) 额外内存空间,且元素必须可哈希——数字、字符串、元组都可以,但 list 、dict 这类可变对象不行。 适用场景:日常项目的首选。需要保留原顺序时尤其合适,因为一边查重一边按原序写入结果。 # 方法 9:set 配合 list——工程最常见写法 def unique_v9(data): seen = set() # set 用于 O(1) 判重 result = [] # list 用于保持原顺序 for item in data: if item not in seen: seen.add(item) result.append(item) return result # 方法 10:dict.fromkeys()——最佳版本,实际使用首选 def unique_v10(data): # dict 自 Python 3.7 起保持插入顺序 # fromkeys 会自动用相同 key 覆盖,从而完成去重 return list(dict.fromkeys(data)) # 方法 11:filter + 列表,函数式风格 def unique_v11(data): seen = [] # 内部函数 def check(item): # 闭包捕获 seen # 注意 seen 是 list ,in 仍是 O(n),整体仍是 O(n²) if item not in seen: seen.append(item) return True return False return list(filter(check, data)) # 函数式风格,但不纯粹,seen 类型选错了,这里只是为了展示写法 # 方法 12:filter + 字典,由 list 改为 dict ,仍然不是纯函数式 def unique_v12(data): obj = {} def check(item): # 用 dict 替代上面的 list ,查询变成 O(1) if obj.get(item) is None: obj[item] = item return True return False return list(filter(check, data)) 第 3 类:集合与排序(方法 13-16 ) 策略原理:将 list 直接转 set ,或者通过 sort() 让相同元素挨在一起再去重,从而简化查找逻辑。两种思路都不再保留原有顺序。集合方式 O(n),排序方式 O(nlogn),且要求元素可比较。 适用场景:不关心顺序、只关心结果集合的场合,例如统计去重数量、做集合运算、把列表当作"无序集合"使用。 # 方法 13:set 直接转列表,常见用法 def unique_v13(data): # 哈希集合天然不重复 return list(set(data)) # 写法最短,但顺序会被打乱 # 方法 14:map + filter 组合 def unique_v14(data): seen = [] def mark(item): # 第一次见到返回元素本身,后续返回 None if item not in seen: seen.append(item) return item return None # 先 map 标记,再 filter 把 None 去掉 return list(filter(lambda x: x is not None, map(mark, data))) # 函数式风格,但 seen 用 list 仍是 O(n²) # 方法 15:先排序再相邻去重(从右往左删) def unique_v15(data): data.sort() # 排序后,相同元素会聚到一起 l = len(data) while l > 0: l -= 1 # 相邻两两比较,相同就删后面那个 if l > 0 and data[l] == data[l-1]: del data[l] return data # 复杂度由 sort 决定,O(nlogn);元素需要可比较 # 方法 16:先排序再相邻去重(从左往右删) def unique_v16(data): data.sort() l = len(data) - 1 i = 0 while i < l: if data[i] == data[i+1]: del data[i] # 删当前,i 不前进;同时长度减一 i -= 1 l -= 1 i += 1 return data 第 4 类:函数式与递归(方法 17-20 ) 策略原理:用 reduce 、外部库或递归换一种表达方式。 reduce 配合元组累加器可以做到 O(n),但写法比直接 for 循环晦涩;递归则吃调用栈、numpy 需要库依赖。 适用场景:numpy 适合大规模数值数据;其余几种主要用于练习函数式或递归思维,工程上一般直接用第 2 类。 # 方法 17:reduce + 元组累加器(函数式风格但能跑到 O(n)) import functools def unique_v17(data): def foo(acc, item): # 累加器是一个元组 (result, seen) # result 保留首次出现的顺序,seen 用集合实现 O(1) 判重 result, seen = acc if item in seen: return (result, seen) # 这里直接修改累加器内部的 list 和 set # 严格的纯函数式应返回新对象 (result + [item], seen | {item}) # 但那样每步都新建列表/集合,复杂度退回到 O(n²) # 在 reduce 内做"受控副作用",换取 O(n) 的性能 seen.add(item) result.append(item) return (result, seen) # 初始累加器是空列表+空集合,最后取 [0] 即得到去重结果 return functools.reduce(foo, data, ([], set()))[0] # O(n);保序;本质是用 reduce 重写了方法 9 的循环 # 方法 18:调用 numpy.unique def unique_v18(data): import numpy as np # numpy 底层用 C 实现的排序+相邻去重 return list(np.unique(np.array(data))) # O(nlogn);不保序;适合大规模数值数据 # 方法 19:递归+原地删除 def unique_v19(data, length=None): # 递归退出条件 if length is None: length = len(data) if length <= 1: return data last_idx = length - 1 # 看末尾元素是否在前面出现过 is_repeat = False for i in range(last_idx): if data[i] == data[last_idx]: is_repeat = True break # 重复则删除 if is_repeat: del data[last_idx] # 递归调用,处理前 length-1 项 return unique_v19(data, length - 1) # 递归深度 = n ,大数据会栈溢出,仅作学习用 # 方法 20:递归+拼接返回(不修改原列表) # 递归自后往前逐个调用,当长度为 1 时终止。与上一个递归不同,这里将不重复的项目作为结果拼接起来 def unique_v20(data, length=None): if length is None: length = len(data) if length <= 1: return data last_idx = length - 1 last_item = data[last_idx] is_repeat = False for i in range(last_idx): if data[i] == last_item: is_repeat = True break # 末尾元素重复就丢弃,否则拼到结果末尾 result = [] if is_repeat else [last_item] # 切片 + 拼接都会产生新列表,空间开销大 return unique_v20(data[:last_idx], length - 1) + result # 演示如何用递归构造结果,工程上没有实用价值 这么多实现方式,如何选择? 类别 时间复杂度 是否保序 主要场景 基础循环 O(n²) 是 教学、极小规模 哈希表 O(n) 是 日常项目首选 集合 / 排序 O(n) / O(nlogn) 否 不在意顺序 函数式 / 递归 视实现而定 看实现 学习、特定场景 实际项目里怎么选 绝大多数情况一行就够: # 保序、O(n)、对所有可哈希类型有效,Python 3.7+ 自带 result = list(dict.fromkeys(data)) 不在意顺序: result = list(set(data)) 数据量很大且都是数值: import numpy as np result = list(np.unique(data)) 带逻辑干预的去重 前面所有方法都把"重复的元素"直接丢掉。但实际工作里经常遇到这样的情况:遇到重复时不能简单丢弃,要根据某个条件做处理。比如: 按 id 去重,但要保留分数最高的那条记录 去重的同时累加重复次数(即频次统计) 数值在某个区间内才参与去重,区间外原样保留 这类需求 set 和 dict.fromkeys 都没法直接表达,需要把"判重"和"处理"两步拆开来写。 def unique_with_rule(data, key=None, on_duplicate=None): """ 带逻辑干预的去重。 key: 可哈希的去重键,默认拿元素本身 on_duplicate: 遇到重复时如何处理 (旧值, 新值) -> 新的"代表值" 返回 None 时保持旧值不变(即等同于丢弃新值) """ if key is None: key = lambda x: x chosen = {} # 键 -> 当前选中的元素 order = [] # 记录键首次出现的顺序,保证保序 for item in data: k = key(item) if k not in chosen: chosen[k] = item order.append(k) elif on_duplicate is not None: # 遇到重复时由调用方决定如何合并 merged = on_duplicate(chosen[k], item) if merged is not None: chosen[k] = merged return [chosen[k] for k in order] 例 1 ,按 id 去重,保留分数最高的: students = [ {'id': 1, 'name': '张三', 'score': 90}, {'id': 1, 'name': '张三', 'score': 95}, # 同 id ,分数更高 {'id': 2, 'name': '李四', 'score': 99}, ] result = unique_with_rule( students, key=lambda x: x['id'], on_duplicate=lambda old, new: new if new['score'] > old['score'] else old, ) # [{'id':1,'score':95,...}, {'id':2,'score':99,...}] 例 2 ,去重的同时统计每个值的出现次数: from collections import Counter data = ['A', 'B', 'A', 'C', 'B', 'A'] # Counter 本身就是"键->计数",遍历一次即可完成统计 counts = Counter(data) # Python 3.7+ 起 dict / Counter 保留插入顺序,因此 keys 即首次出现顺序 unique_keys = list(counts.keys()) # unique_keys = ['A', 'B', 'C'] # counts = {'A': 3, 'B': 2, 'C': 1} 例 3 ,区间过滤——只对 [0, 50] 区间内的值去重,区间外的原样保留: data = [5, 12, 5, 100, 12, 200] seen = set() result = [] for x in data: if 0 <= x <= 50: # 区间内才参与去重 if x in seen: continue seen.add(x) # 区间外或首次出现,都保留 result.append(x) # [5, 12, 100, 200] 这三个例子是同一种思路:把判重与业务规则分开。判重用哈希结构保证 O(n),规则部分留给回调或显式分支处理,这样既不丢性能,又能容纳各种业务变化。 AI 时代,程序员不一定要手写代码,但一定要懂得编程思路,这样才能更好地指导 AI 。 更多算法 不同语言算法实现: https://github.com/microwind/algorithms AI 编程知识库: https://microwind.github.io