AI 生成任务

风格迁移:把一种观感搬到自己的图上

又称 神经风格迁移, 风格参考, style transfer, 图像风格化

风格迁移(style transfer)是把一张图的观感,也就是它的配色、笔触、肌理和光感,套到另一张图的内容上。早期的神经风格迁移是直接对一张输出做两路损失的优化;现在的扩散管线用风格参考图或提示词完成同一件事,更快更灵活,但对肌理的复制不再那么字面。

风格和内容其实分不开

这套做法的前提是:一张图可以拆成「画了什么」和「怎么画的」。实际上这条边界是漏的,而几乎所有让人失望的结果都源于这个漏。

有些东西不含糊:配色、对比曲线、颗粒、笔触肌理、光感,都是风格;主体身份、构图、姿态,都是内容。但很多观感的定义特征恰恰会改动内容:木刻风格意味着块面变粗,漫画夸张风格会改比例,低多边形风格干脆重建几何。要求这类风格同时把人脸原样保住,等于同时要两个互斥的结果。

三种做法

  • 只用提示词。 写清媒材、年代、材料、光线。便宜,适合宽泛的品类;但要复刻手上某一张具体的观感就不可靠,因为你在指望文字能抵达一张图所在的位置。
  • 风格参考图。 模型在你的输入之外再以一张参考图为条件,用一个权重做权衡。这是「能拿给你看、但说不清」的观感的标准解法。
  • 训练出来的风格。 用一组样例训一个 LoRA 或微调,把一种观感学下来。准备成本高,而当你需要同一种观感覆盖几十张图时它才划算,因为这是唯一真正有一致性的方案。

有效的调参顺序

结果不对时,按这个顺序改,而不是一次全动:

  1. 重绘强度。 原图能保留多少。这是粗调,也是主体被毁掉的最常见原因。
  2. 风格权重。 参考图推得多狠。加到观感认得出来就停。
  3. 结构控制。 前两项无法兼顾时,加深度条件保空间,或加边缘条件保轮廓。
  4. 提示词。 放最后,用来补参考图没携带的信息,比如光的方向,或者你想强调的某个颜色。

参考图怎么挑、怎么裁

好的风格参考图,会在你在意的尺度上展示技法。裁到衣褶、树叶、墙面或天空这类区域,而不是整张人像,模型才会读肌理和配色,而不是顺手把主体也搬走。细节层级也要大致对得上:一张贴脸拍的参考图,会把大笔触推到一个大全景里,看上去就是一片糊。

两张参考图取平均,出来的东西通常比单独用任何一张都弱,所以叠加当最后手段。如果一种观感在任何权重下都迁不过来,诚实的判断是它长在形状里而不是表面上,那就需要训练一个专门的风格,或者换个方案。

这个效果的提示词

一条能稳定出效果的起点。主体和场景可以换,技术性的那几句留着。

Restyle the photograph in the manner of the supplied reference: heavy impasto brushwork, muted ochre and slate palette, visible canvas texture, keep the subject pose and facial features intact

试一下:风格迁移(Style Transfer)

打开生成器,参数已经预填好。

常见问题

风格迁移和图生图有什么区别?
图生图是通用机制:一张输入图加提示词,再用一个强度参数控制离原图多远。风格迁移是你用这套机制去追求的一个具体目标,即换观感、留内容。每次风格迁移都是一次图生图,反过来不成立。
怎么让它别把人脸改掉?
先降重绘强度,它决定原图整体能留下多少。还不够就加一层结构控制,比如深度或边缘条件,把几何钉住,让颜色和肌理去变。人脸和文字总是最先崩的,所以调参要对着人脸调,别对着风景调。
为什么风格参考图把它自己的主体也带进来了?
因为风格和内容分不干净,而参考图里的主体是很强的信号。把参考图裁到只体现技法、不含主体的区域,比如一块背景或衣褶,同时把参考权重降下来。
早期的神经风格迁移和扩散模型做的是一回事吗?
不是。早期方法直接对像素做优化,去匹配风格图的特征统计,所以肌理复制得非常字面,但没法生成新细节。基于扩散的风格化是重新生成整张图,画面更完整,对具体笔触的忠实度反而更低。
风格权重该给多大?
从量程的三分之一附近起步,往上加。多数观感在低权重时就已经认得出来了,而毁掉人脸、手和文字的恰恰是最后那几档。如果低权重下完全没效果,问题通常在参考图,不在权重。

相关术语