VSC

一张图开始发脏以后,最顺手的补救通常是继续加词。
噪点、水印、脏纹理、塑料感、乱背景,全被写进黑名单。一串 no 写下去,提示词看着越来越严,画面却未必真能干净。有些不想要的东西,仍可能让模型继续关注这些概念。
这次刚整理完的 im2-clean-image,就是从这个问题往回拆的。
我没有把它做成一个“万能去脏尾缀”。它负责四件互相咬合的事。材料怎样接光,细节应该落在哪里,哪些痕迹属于生成伪影,以及负面词究竟该不该出现。
后来再看,所谓干净,其实很少等于“少画一点”。它更像是在给画面里的信息重新分配位置。
有一种脏很好认,画面里藏着像水印的暗纹,背景有擦不掉的残影,衣服和墙上冒出重复的小花纹。这类可以叫生成残留。
还有一种脏不靠瑕疵出现。模型把每块石头、每片布、每根头发都刻得很用力,远山和人物的边缘一样硬,暗处塞满了纹理,亮处又全部抛成一层油光。单看局部,似乎处处有细节;缩成小图,视线却不知道该往哪儿落。
这说明信息没有主次。
再往下还有一层。金属、皮肤、布料和石头用了同一种高光,接缝处全靠一圈黑边压重量,潮湿场景干脆整张图一起反光。它也会让人觉得“脏”,因为我们读不出材料,只能看到一层统一的生成质感。
所以这个 Skill 的顺序没有从负面词开始。它先确认画面的主角和几块大形,再找光的来处,看主要材料怎样回应这束光,最后处理确实需要压住的失败类型。
模型很喜欢用更多纹理证明真实。但现实里的材料并不靠纹理数量区分。
哑光石材吃光,金属边缘会在合适的角度收出窄亮线,潮湿尼龙有柔一点的肩部高光,玻璃和水面的反射受视角控制。即便几样东西颜色接近,它们仍然可以靠明暗、粗糙度、高光宽度、边缘反应和透光性分开。
反过来,只写“真实材质、电影质感、8K、超高清”,模型拿不到这些关系。它最省事的办法,就是给所有表面一起加亮、加锐、加纹理。图自然会变得又硬又油。
im2-clean-image 里有一个很朴素的要求。先说清英雄材质,再说它在当前光线下发生什么。纹理只在镜头距离看得见、光线照得到、叙事又需要的地方出现。
这句话看着不花哨,却能拦住不少假细节。石头不必满身颗粒才有重量,布也不必每一寸都看见纤维。材料能站住,靠的是它和光的关系。
我在这个 Skill 里把画面粗分成三种区域。
焦点区保留最完整的轮廓、最高的边缘对比,以及少量真正有用的细节。它们可以用来读脸、读动作、读接触关系,也可以让一件核心材质成立。
支撑区负责解释空间和叙事。这里需要中等大小的形,不需要和主角争每一根线。
安静区与远景更克制。小形状减少,局部对比下降,一些轮廓可以融进光、雾、阴影或者相邻色块里。它会主动放弃不重要的信息,不能用一层全局模糊草草抹掉。
我现在理解的“干净”,就是一张图可以很复杂,但不能处处都在说话。
复杂场景先留住三到七块大形,再给画面一块能喘气的地方。细节往一两个视觉机关上集中,远处逐级损失内部结构。缩略图里还能一眼找到主角,说明这套层级大致没散。
过去常见的 ultra detailed,在这里会被换成更具体的控制。细节集中在哪儿,哪些支撑形需要简化,哪里的轮廓可以不完整。少了一个华丽形容词,模型反而多了一条能执行的路。
这次补 Skill 时,我花得比较多的一块,是现实场景的光路。
“电影感逆光”“丁达尔光”“潮湿空气”都很好写,问题是写完不等于画面里真有因果。太阳在画面左侧,右侧背光面却莫名冒出暖边;墙上有一块窗光,地面上却找不到延续;空气很干净,正中间还是悬着一根边界锋利的光柱。
这些局部都可能好看,放在一起却不像同一个空间发生的事。
Skill 里因此先编一条最短光路。它依次记录光源的位置和大小,是否经过窗、门、树叶或别的遮挡,空气中有没有雾、湿气、粉尘、烟或水汽,第一块接到光的表面在哪里,投影朝哪边走,反射和补光又从哪里回来。
只有这条链能走通,氛围词才有地方落。
体积光也是一样。它需要参与散射的介质,也需要合适的光源与观察角度。边界很清楚的光束,往往还得有一个开口或遮挡物来塑形。不能为了“电影感”给干净空气硬塞光柱,也不能把雾平均铺满全画面。
空气透视则不只是“远处变蓝”。更稳的做法是让远景先丢掉小结构,再降低边缘和局部对比。颜色要不要往环境光靠,要看当时的湿度、颗粒与光线条件。远处仍要留几块能辨认的剪影,否则空间也会一起丢掉。
这可能是整个 Skill 里最容易被忽略的一条。
生成失败后,人会本能地把上一张图的问题记进下一条提示词。上一张多了一把刀,就写不要刀;颜色偏紫,就写不要紫色;脸上出现脏印,就把那块脏印描述一遍。改了几轮以后,负面区像事故档案,旧人物、旧道具、旧颜色都留在里面。
可这些词并不透明。你一边否定,一边仍在把具体概念交给模型。
新的规则是,先把想看到的状态写成正面事实。
与其写“不要杂乱”,不如写背景由低频大形组成,留出清楚的负空间。与其写“不要模糊”,不如写主角轮廓清楚,景深有意控制。与其写“不要多余人物”,先锁定单一主体和空的周边空间。
负面区只剩几类当前确实可能发生的风险,比如幽灵纹理、潜在残留、重复微图案、泥掉的暗部、伪水印和贴上去的纹理。覆盖当前高概率风险以后,这一段越短、越针对眼前问题越好。
如果一张图已经积累了暗纹和脏残留,我更倾向从干净底稿重生。围着旧图反复擦,生成式修补每走一轮,旧问题都有可能换个样子留下来。新一轮提示重新锁住主体、姿态、构图和色调,再把材料、光路与信息层级搭一遍,不用继续描述“上一张的脏东西”。
只要拿着一张源图去改,提示词里就很容易出现互相打架的要求。既要原构图一丝不动,又要换一个会暴露新表面的视角;既要保住遮挡关系,又要把人物转到另一个方向。模型最后只能猜哪句话更重要。
这个 Skill 会先判断任务属于局部编辑、整体重建,还是两者混合。接着用 CHANGE 写下一项主要变化,把源图能够证明的身份、数量、位置和材质关系放进 PRESERVE EXACTLY。凡是被这项变化牵动的透视、遮挡、边缘、接触阴影、反射和背景补全,都放进 REBUILD,明确告诉模型哪些地方必须重新计算。
这里的 PRESERVE EXACTLY 是验收目标,不是生成模型自动提供的像素级保证。精确文字、Logo、界面、签名和可测量几何仍然要交给遮罩、合成、配准或三维重建。提示词负责把意图说清,确定性工具负责守住不能猜的东西。
建筑、室内、地形和硬表面场景还有一个常见问题。为了让东西显得厚重,画面被压得很黑,再铺一层浓雾、颗粒与锐化。重量似乎出来了,开口深度、支撑关系和接地位置却越来越难读。
在这个分支里,重量要落到看得见的证据上。墙和板有厚度,洞口有进深,构件之间有遮挡与承托,重心能够落住,接触阴影只出现在真实的缝隙、重叠和着地点。大表面保持连续安静,小纹理只留给镜头确实能读出的施工、磨损与接触区。
提示词写完也不能直接算完成。生成结果出来以后,还要回看相机、地标、开口、支撑、材质和阴影是否真的成立。哪里失败就只改一个主变量,已经通过的部分全部冻住。若结构或相机已经漂了,回到干净底稿重来,比在错误画面上继续叠修更稳。
这个 Skill 还有一条单独的支路,专门管真实照片。
公司活动、团队合影、门店、产品、餐饮、证件和文档照片,首先是记录,其次才是图像。人是谁、有几个人、站在哪儿,商品的形状与数量,招牌、价格、日期、Logo、二维码,这些内容必须保持,不能拿来自由发挥。
修复时最危险的结果,往往也是最好看的结果。模糊的脸被补得很精神,包装上的字变得更工整,桌上多了一盘更像样的菜。它们看起来完整,证据却已经换了。
所以这里采用的是最低必要修改。先校正裁切、透视、白平衡和曝光,再处理高光、暗部、压缩与噪声。只有现有证据能唯一支持缺失内容时,才做局部生成修复。
有些地方宁愿保留一点模糊,也不能替现实发明一个答案。
把这套东西做完以后,我更确定了一件事。
画面的脏,很多时候来自前面几层关系一起松掉。材料没有区别,光没有来路,远近拥有同样密度的细节,负面区又塞满了旧失败。
清理应该从提示词前半段开始。
先锁住要表达的东西,再让大形站稳。让光沿着一个可信的路径穿过空间,让材料用各自的方式接住它。把最精细的信息留给真正的焦点,其他地方知道什么时候停。最后用一小段负面约束拦住常见伪影,不再把过去的事故重新念一遍。
图没有被洗成光滑的塑料,也没有因为追求干净而丢掉复杂度。它只是终于知道,什么地方该说,什么地方该安静。