攝影師在拍攝完成之後,會再將作品套上自己的風格,每一次的拍攝都是幾千張照片再篩選跟後製,整個過程曠日廢時,如果可以直接請AI產生風格檔,並整理成JSON格式的資料,這樣就可以省下很多工序,也可以一次製作各種不同風格。
我請AI幫我產生風格檔,你可以想一些風格讓他幫你產生參數,例如:復古暖色風、冷冽電影風等等,以及你需要哪些參數,我請AI幫我列出飽和度、對比度、亮度以及RGB,回覆結果如下:
{
"暖色調復古": {
"description": "降低飽和度,增加對比,並加入暖色調,創造懷舊的復古感。",
"enhancements": {
"Color": 0.7,
"Contrast": 1.2,
"Brightness": 1.1
},
"rgb_adjustments": {
"R": 1.15,
"G": 1.0,
"B": 0.9
}
},
"冷色調電影感": {
"description": "降低亮度,增加對比,並加入藍色調,呈現深沉、冷酷的電影風格。",
"enhancements": {
"Color": 0.8,
"Contrast": 1.5,
"Brightness": 0.8
},
"rgb_adjustments": {
"R": 0.9,
"G": 1.0,
"B": 1.2
}
}
接著再使用Pillow套件進行修圖,參考程式碼如下:
with open('styles.json', 'r', encoding='utf-8') as f:
STYLES = json.load(f)
style_data = STYLES.get(style_name)
if not style_data:
print(f"警告: 找不到 '{style_name}' 風格檔,將使用原始圖片。")
return image
# 確保圖片是 RGB 模式,以便分通道處理
if image.mode != 'RGB':
image = image.convert('RGB')
# 先進行亮度、對比和飽和度的增強
enhancements = style_data.get('enhancements', {})
if 'Color' in enhancements:
enhancer = ImageEnhance.Color(image)
image = enhancer.enhance(enhancements['Color'])
if 'Contrast' in enhancements:
enhancer = ImageEnhance.Contrast(image)
image = enhancer.enhance(enhancements['Contrast'])
if 'Brightness' in enhancements:
enhancer = ImageEnhance.Brightness(image)
image = enhancer.enhance(enhancements['Brightness'])
# 接著進行 RGB 通道調整
rgb_adjustments = style_data.get('rgb_adjustments', {})
if rgb_adjustments:
# 分離 RGB 通道
r, g, b = image.split()
# 根據 JSON 中的參數調整每個通道
if 'R' in rgb_adjustments:
r = r.point(lambda i: i * rgb_adjustments['R'])
if 'G' in rgb_adjustments:
g = g.point(lambda i: i * rgb_adjustments['G'])
if 'B' in rgb_adjustments:
b = b.point(lambda i: i * rgb_adjustments['B'])
# 合併回新圖片
image = Image.merge('RGB', (r, g, b))
套用效果如下:
冷色調電影感
暖色調復古
感覺還不賴耶~~ 其實我根本不會修圖,但有了AI協助,新手也能夠設計出屬於自己的風格!