iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
自我挑戰組

探索AI之旅系列 第 5

[Day5] 讓AI幫你設定風格檔

  • 分享至 

  • xImage
  •  

攝影師在拍攝完成之後,會再將作品套上自己的風格,每一次的拍攝都是幾千張照片再篩選跟後製,整個過程曠日廢時,如果可以直接請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))

套用效果如下:
冷色調電影感
https://ithelp.ithome.com.tw/upload/images/20250919/20178822hXnFcggwWz.png
暖色調復古
https://ithelp.ithome.com.tw/upload/images/20250919/20178822P9M0ieS78X.png

感覺還不賴耶~~ 其實我根本不會修圖,但有了AI協助,新手也能夠設計出屬於自己的風格!


上一篇
[Day4] AI攝影助教
下一篇
[Day6] AI相機-Sony α1 II
系列文
探索AI之旅8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言