一、起因:调色不该这么复杂
图像调色虽然看似只是微调一些滑块,实际上涉及多个关联参数:色温、亮度、对比度、饱和度、阴影、高光等等。对于普通用户来说,这些名词本身就不够直观,更别说理解它们之间的相互影响。即便是熟悉图像处理的用户,调出理想效果也往往需要多次尝试与回退。
我在开发图像编辑器 Monica(https://github.com/fengzhizi715/Monica) 的过程中,一直希望降低调色门槛。于是,我开始尝试一个思路:能否用自然语言来驱动参数,让用户说一句话,比如“让肤色冷一点”,系统就能自动完成一系列合理的参数调整?
随着近年来大模型(LLM)在语言理解和结构化输出方面的能力逐渐成熟,这个目标不再只是想象。我尝试接入一个 LLM 模型,为 Monica 增加一个「自然语言调色助手」。
二、我的方案:LLM + 参数结构
为了让大模型具备调色能力,我使用了 DeepSeek 提供的 API 接口。它支持中文自然语言输入,并且能够输出结构化 JSON 格式,便于程序直接解析使用。
用户每次输入一句自然语言指令,比如“肤色偏黄,冷一点”,我会将当前的调色参数作为上下文信息,一起发送给模型。模型返回的结果是一组结构化的参数调整结果,例如:
{
"temperature": 200,
"status": 5
}
其中各项参数值直接对应 Monica 的定义好的调色参数结构 ColorCorrectionSettings:
data class ColorCorrectionSettings(
val contrast:Int = 255, // 对比度,范围 0-510
val hue:Int = 180, // 色调,范围 0-360
val saturation:Int = 255, // 饱和度,范围 0-510
val lightness:Int = 255, // 亮度,范围 0-510
val temperature:Int = 255, // 色温,范围 0-510
val highlight:Int = 255, // 高光,范围 0-510
val shadow:Int = 255, // 阴影,范围 0-510
val sharpen:Int = 0, // 锐化,范围 0-255
val co

最低0.47元/天 解锁文章

478

被折叠的 条评论
为什么被折叠?



