RYA · production mapcraftcolor

Color

Цвет фильма — к принятому ролику канала. У каждой из пяти камер своя проявка, одна цепочка на съёмку, без масок. Решают в комнате цвета по коротким роликам, рендер — после «ок».⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

«Измеряй по лицу, не уходи в зелёный или синий, контраст должен быть»Роман, 03.10.2026
color room
FX3 · YTUVIE 3.1.2 · as shot → graded
ZV-E1 · as shot → now → proposed (to FX3 at the same second)
Pocket 4P · six variants vs FX3 at the same second

Chain

Reference → Targets → Develop → Chain → Every shot → Color room → Render. С 08.10 к эталону канала, с 24–25.10 решают по роликам в комнате цвета.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

⭐
01

Reference

принятый ролик канала или одобренный кадр

⇒ ref.json✓ frames without screens
🎯
02

Targets

лицо, кожа, чёрное, сочность — числами

⇒ {CODE}_color_ref.json✓ deviation needs a reason
📷
03

Develop ↗

по камере и гамме: Sony S-Log3, Pocket D-Log2, Nano/Action D-Log M

⇒ develop at 100 %✓ unknown gamma = refuse
🧊
04

Chain

одна цепочка на камеру и съёмку, без масок; куб 65³ на группу

⇒ cube per group✓ targets within tolerance
🙂
05

Every shot

лицо к цели, своя кожа, не рыжая, своё чёрное

⇒ own cube on ~60 % of shots✓ faces 113–135
🎞
06

Color room ↗

короткие ролики «как снято → в цвете» по камерам, ✓ ✎ ✕ и отзыв

👤 Roman: rating → OK⇒ room on the portal
🎬
07

Render

план цвета в движок: 720p черновик → 4K

⇒ film in this color✓ only after OK
machineRoman decidesST1 approach code · opens the card

Approaches

Доска, мерило, свет сцены, ступени — и решения 08–25.10: эталон канала, комната цвета, проверка на видео, одна цепочка без масок, своя проявка камеры, мягкий финиш, кожа одной камеры, без зерна.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

CO1Colorcanon

Color decided before the cut, on a scene board

  • сцена → варианты рядом, у каждого числа и ссылка «#»
  • выбор Романа — до рендера; поменялся монтаж — замер и доска заново
15_color/1502_lut_pick/lut_board.py --frames-from <proxy> | --feedback <json> (preview as a chain of two lut3d, not a merged cube) · 0511_doc_cut/color_lab.py -> color_page.py · plan.json color.variants -> site gen_screen_plan.py
YTCH14 v4 · Доска лутов · YTLAB02 25.09: витрина — выбор кликом, лестница стопов, рекомендация с причиной · YTEVO03 22.09: 162 клипа, 18 правок Романа против машины, показаны все 27 look · YTCG37 v2 03.10: варианты −1,0/−1,2/−1,4 со светами кожи
CO2Colorcanon

The face is the measure

  • кожа тремя числами: тень · середина · света; угол и насыщенность
  • серое — без зелени и синевы; контраст — тенями, мягко
  • жёсткая тень на лице, тёмное или пережжённое лицо
05_editing/0510_headless_cut/solo.py skin_stats | solve_ev · 0511_doc_cut/color_lab.py (flags in lab/<group>.json) · 0510_autocut/color.py probe · 15_color/1502_lut_pick/color_plan.py
Роман, 03.10: «измеряй по лицу, не уходи в зелёный или синий» · Чек-лист · YTLAB01 v1 и YTCG37 v1 02.10: дважды «пересвет» при светах на цели → YTLAB01 v3 (41/62), YTCG37 v2 (38/49/56) · YTCH14 v3 → v4 03.10: флажки зелень 8 → 0, синева 6 → 0 · YTEVO03 22.09: 162 клипа со своими стопами, цель 134
CO3Colorcanon

Scene light is its character

  • цель кожи — по сцене: на закате лицо светлее
  • куратор на закате: середина кожи 104 → 123
999_extra/story_map/story_color_ref.py ({CODE}_color_ref.json: night, warm_in, mid_mode, tone_scene, face_scene, manual_clip)
YTCH14 v4 · Роман: «Маша на закате — светлое лицо» · все сцены · YTEVO03 v4 08.10: ночь — лицо 116, чёрное 14; тёплый интерьер — лицо 108, серое b 1,5; собор и ночь со спины — экспозиция по середине кадра; серое небо Лисьего Носа — не нейтраль
3 stepsdevelop → face → look
CO4Colorcanon

Steps: develop → exposure → look

  • проявка — по гамме и камере на 100 %
  • экспозиция — по лицу героя
  • look канала — поверх, один на канал
  • незнакомая гамма — отказ, а не «поехали»
15_color/1503_color_apply/color_apply.py · 1502_lut_pick/color_media.py · color_plan.py · lut_board.py · YTs/{CH}/color_profile.json
канон 15_color · Scene LUTs · до 22.09 тройка 01_bright/02_normal/03_dark_scene (YTCH13 18.08, «готово! работает») — заменена: 61 клип DJI из 163 под S-Log3-кубом · YTEVO03 22–23.09: 163 клипа, 2 гаммы · YTEVO: один look__newstar на 162 клипа
CO5Colorcanon

Color to the channel's approved video: reference and numeric targets

  • эталон и фильм меряют одним замером; цели — в {CODE}_color_ref.json
  • отступление от эталона — только с причиной в «Моё мнение»
  • норма из головы вместо эталона
999_extra/story_map/story_color_ref.py ref | profile | probe | solve | plan | pieces | strip | pairs · story_color_plan.py · story_color_probe.py
08.10 · Roman · YTEVO03 · YTEVO03 ← YTEVO02 v7: C* 12 → 20, кожа 51° → 56° · YTEVO03 v4 ← YTEVO02 v7 08.10: 392 плана, 5 камер, 17 групп · YTCR04 v8 16.10 по эталону YTCR01 v16: лицо 84, кожа 54°, кубы 65³
CO6Colorcanon

All cameras on one page, a comment per frame, render after OK

  • папки сцена → камера, у кадра «было | стало» и комментарий
  • кадры страницы считаются той же цепочкой, что рендер: что видно, то и выйдет
  • один момент со всех камер сцены — скачок на склейке видно первым
999_extra/story_map/story_color_folders.py --target artifact --inline | --target portal · 05_editing/0516_review_room/color_portal.py publish · 0513_lesson_cut/lesson_color_page.py · story_color_ref.py pairs
08.10 · Roman · YTEVO03: 392 плана, 5 комментариев → 4 правки за 1,5 ч · YTEVO03 v4 08–12.10: эталон страниц цвета, папка «Один момент» · YTAgeFree16 · YTUVIE 12.10: страница цвета всех уроков (папка = урок)
CO7Colorcanon

Skin dense and warm, not orange

  • тон кожи 56° ± 6, плотность C 31 ± 4, потолок C 38 — выше рыжая (skin_cap на плане)
  • 61° на мужских лицах желтит — поэтому 56°; красное лицо — 33–45°
  • «картинка насыщенная и лицо не такое красное»
999_extra/story_map/story_color_fix.py (skin, skin_cap) · story_color_ref.py pieces · 05_editing/0511_doc_cut/color_lab.py solve_skin
08.10 · Roman · YTEVO03 · рыжих лиц по фильму 23 → 13 · YTEVO03 v4 08.10: кожа 51° → 56°, Дарья за рулём 33° → 55° · YTCH14 v4 03.10: Катя 46° C 12 → 52° C 24 · YTAgeFree16 v3 18.10
1 chainper camera and shoot
CO8Colorcanon

One chain per shoot: only exposure is redone

  • уроки одной съёмки — цепочка камеры с одобренного урока: solve19 --lock
  • баланс заново — только если футболка дальше ±2 по a/b; кожа — если лицо дальше ±2,5°
  • подбор цвета по своим кадрам у каждого урока: 3.1.3 вышел контрастнее и теплее 3.1.2
05_editing/0513_lesson_cut/color_lesson.py solve19 --lock <lesson> · color.cam_ev · course_color.py sample | solve | page · lesson_color_hub.py
25.10 · Roman · YTUVIE block 3 · «почему цвет в 3.1.3 не такой, как в 3.1.2?» · YTUVIE 07–13.10: весь курс к одному утверждённому кадру FX3 урока 1.1.1 (лицо 131, кожа 44°) · блок 3 25.10: замок цепочки + поправка экспозиции камеры в стопах
D-Log2≠ S-Log3
CO9Colorcanon

Each camera has its own develop: Pocket 4P uses the DJI cube

  • Pocket 4P D-Log2 → dji_pocket4p__dlog2__rec709__plus|minus → лицо по FX3 той же секунды → творческий сверху
  • вести Pocket через Sony: куб DJI → псевдо-S-Log3 → куб канала — двойная проявка, лицо красное
  • новую камеру — сначала искать её проявку в курсе
YTs/{CH}/color_profile.json · 05_editing/0510_autocut/color.py (camera to cube map) · 0511_story_cut/sc_color.py DEVELOP · 0513 zv_match.chain_cube, color.cam_chain.Pocket · 999_extra/course_kb_search.py
25.10 · Roman · YTUVIE block 3 · «Pocket — third camera. Лицо красное» · YTEVO03: FX3 + ZV-E1 → sony neutral legacy (101 клип), Pocket 4P → dji_pocket4p dlog2 minus (61) · YTEVO02: Blackmagic Film Gen 5 — своя проявка · YTCR04 16.10: Pocket 3 в D-Log M шёл без проявки
softface 142 · p2 18
CO10Colorcanon

Soft, like the approved reference of the same footage

  • есть одобренный ролик того же материала — он эталон: лист «эталон · сейчас · проба» с мерками
  • цвет по фильму ровный: холодную сцену среди тёплых выравнивать, а не «нейтрализовать»
  • S-кривая по каналам и плотная картинка на лицах пожилых — «лица прям глаза»
05_editing/0514_teaser/grade_norms.py --finish matte --norms face=142,p2=18,hue=60,p50_max=160 · YTAgeFree16 grade_measure.py, grade_compare2.py
18.10 · Roman · YTAgeFree16 · YTAgeFree16 v3 ← тизер S3 v2 · YTAgeFree16 v4 19.10: --finish matte, лицо 142, p2 18 · YTCR04 v9 E3: чёрное 14 → 18, ночь 12 → 18
C 15 → 18skin only, one camera
CO11Colorcanon

Pale skin on one camera: a secondary on skin only

  • общий план — честное сравнение людей: одна камера, один свет
  • серое одинаково → баланс верный, греть весь кадр нельзя
  • skinmatch: поворот тона и насыщенность около тона кожи; проверка через сам куб
  • теплить весь кадр — потеплеют штора, стол, фон
05_editing/0510_headless_cut/color.py skinmatch --cam cam2 [--target C,h,L] [--sg auto] [--hw 16] | shadowmatch --cam cam4 | versus --a v3 --b v4
25.10 · Roman · YTTRBM03 · Ксения: C 15 → 18, тон 24° → 30° · YTTRBM03 25.10: Ксения C 15,3 → 18,4, тон 24° → 29,6°; предметы против v1 — медиана ΔE 0, p95 ≤ 0,9
0grain by default
CO12Colorcanon

No synthetic grain or film look

  • чистая студия остаётся чистой; виньетка — можно
  • зерно «для единого фильма»: на 720p после кодирования — пятнистая кожа
  • шум фона кадра 1,76 → 0,43, когда зерно убрали
07_shorts/0701_finished/dyn/dyn.py finish() (grain 0 by default) · 999_extra/story_map/story_color_ref.py (vignette)
18.10 · Roman · YTUVI01 · «почему такой шум на кадрах с Натальей?» · YTUVI01 шортсы v9 18.10: шум фона 1,76 → 0,43 без зерна · YTEVO03 v6 13.10: мягкая виньетка PI/6 — фон темнее, герой ярче
CO13Colorcanon

Check color on video, not only on stills

  • короткие ролики по 4 с: «как снято → в цвете» по каждой камере, один момент — все камеры рядом
  • на видео видно то, чего нет на кадрах: дрожащий край маски, мерцание, скачок на склейке
  • решать по стоп-кадрам: на кадрах у маски «краёв не было», на видео край ходил вокруг человека
05_editing/0513_lesson_cut/color_variants.py --project P --lesson L --variants ... --at 300,193 · YTUVIE02 08_Cut/_run/color_b3.py clips --kinds pocket2
24.10 · Roman · YTUVIE 3.1.1 · комната цвета YTUVIE03 · color_b3.py clips · YTLAB01 02.10: образец 40 с с цветом и без к доске · YTUVIE 1.1.1 06.10: варианты сеткой 3×2 по 6 с · YTUVIE 3.1.1 v3 24.10: край маски на видео дрожит
1 chainno background masks
CO14Colorcanon

One chain, no background masks

  • цвет говорящей головы — одна цепочка узлов; фон, лицо и контраст — параметры своих шагов
  • маска фона поверх цепочки: «Маска вокруг него ходит… Оч плохо»
  • фон, освещённый как лицо, — вопрос света на съёмке, а не маски
05_editing/0513_lesson_cut/color_lesson.py solve19 (color_lab.chain19) | --ref-look (look_fit) · YTUVIE02 look_sheet.py
24.10 · Roman · YTUVIE block 3 · №19 без слоёв — на весь блок 3 · YTUVIE01 13.10: цепочка №19 принята («теперь применяем ко всем видео!») · 09–13.10 зоны лицо·фигура·фон и №16 (свет лица по маске) — сняты на блоке 3 24.10
CO15Colorcanon

Color room: big variants, English controls, a wishes field

  • варианты — роликами и кадрами крупно; у каждого ✓ OK · ✎ Needs work · ✕ Drop и отзыв
  • ручки — Exposure, Temperature, Tint, Shadows, Highlights, Saturation; русская подсказка мелко
  • пожелание словами («фон темнее») — сессия делает и присылает новую версию «было → стало»
05_editing/0516_review_room/color_room.py init | add | ref | build | set | pull + template/color.html (WebGL2, cubes as base64 json) · color_portal.py publish
11.10 · 25.10 · Roman · YTUVIE03 color v1 → v2 (25.10) · YTTRBM03 · YTAgeFree16 · YTEVO03 11–12.10: комната v4, 5 пожеланий словами → план v5 · YTAgeFree16 13.10 на портале · YTTRBM03 25.10: «было v1 / стало v2»
CO16Color
CO16Colorcanon

Explicit colour tags and 10-bit compositing, no hidden BT.601 or 8-bit

  • немеченый файл ffmpeg читает как BT.601: bt709 и in_range задавать явно, теги ProRes — через setparams (ключи -color_* не работают)
  • ProRes из HyperFrames — BT.601 limited без тегов: обе конверсии явно; экраны накладывать только в YUV 10 бит с явными матрицами
  • фильтр vignette режет до 8 бит — виньетка маской cos⁴ 16 бит через blend multiply; скрытую конверсию видно в ffmpeg -v verbose
  • клип в Rec.709 получает только look; Blackmagic Gen 5 — своя проявка (YTEVO02)
ffmpeg setparams · overlay in yuv444p10le · 05_editing/0510_headless_cut/conform.py · 0510_autocut/screens_verify.py · 0511_doc_cut/conform.py
02.10 · stage canon · все движки фильма кодом, сверено 02.10 · YTLAB01 · YTEVO02 · YTCH14 · хук YTCG39 05.10
CO17Color
CO17Colorcanon

Whole chain baked into one 65-point cube per group or shot

  • проявка, экспозиция, баланс, кривая, look и кожа запекаются в один куб на группу или план и красят ffmpeg одним lut3d tetrahedral
  • для вторичек кожи — сетка 65³: на 33³ поворот кожи 28° доходил до кадра как 7°; 65³ рендерится с той же скоростью
  • кожу мерить и подбирать через сам куб: 65³ съедает 15–30 % поворота, цепочка без куба врёт на ~3°
  • вход явно: in_range, матрица bt709 → gbrp10le → lut3d; имя куба несёт отпечаток рецепта
999_extra/story_map/story_color_fix.py chain3 (65) · story_color_ref.py (story_color_plan N = 65) · 05_editing/0514_teaser/grade.py bake --look gold:0.6 · color_lesson.lut_fit_skin
06.10 · stage canon · YTAgeFree S3 06.10: куб на план, look gold:0.6 · YTEVO03 v4 08.10 под YTEVO02 v7 · уроки YTUVIE 10.10: кожа float 44° → tetra 40°
CO18Color
CO18Colorcanon

Premiere colour: donor layers on YTAI_COLOR right above the log tracks

  • цвет — клоном корректирующего слоя из общего донора на дорожке YTAI_COLOR прямо над лог-видео: слой = проявка и экспозиция верхнего лог-клипа
  • всё готовое в Rec.709 (запись экрана, референсы, стоки, графика) лежит выше и не красится
  • Assembly и карты сцен — вложения лент: лут в них не ставить (двойная проявка); параметр Lumetri — по индексу, не по имени
  • Adjustment Layer программно не создаётся — только клон из донора; Роман 29.09: «луты на видео по камере» — Spread собран 30.09, без проверки
05_editing/0500_uxp Build Color Donor / Apply Color (src/adjust/colorDonor.js) · tools/panel_job.py color_scenes | color_sequence | color_strip · 15_color/1503_color_apply/color_apply.py --apply --install
25.09 · Roman · YTUVIE01 урок 1.1.1 25.09 · YTUVIE01 блок 1 26.09: 15 из 15 (v2.30.7) · YTEVO03 26.09: 149 слоёв на лентах сцен
CO19Color
CO19Colorcanon

White balance by the scene's neutrals: the speaker's shirt, grey level

  • баланс — по нейтральным поверхностям (L 22–93, низкая насыщенность) в линейном свете до проявки, после look — ещё раз: |a|, |b| ≤ 2
  • на уроке нейтраль — футболка в окне груди: чёрное по тёмным 30 %, белое по светлым 10 %; в фильме — серая рубашка героя
  • баланс по коже — уводит серое в зелень; глобальный R/B, когда чёрная футболка ушла в коричневое: правится баланс теней
  • тепло заката — на 70 %; холодный свет окна остаётся светом окна: кожу к линии тона — только наполовину
05_editing/0511_doc_cut/color_lab.py solve_post · 0511_doc_cut/color.py · 0511_story_cut/sc_color.py plan · color_lab.shadow_tint, preset wht: chest (color_lesson.py)
03.10 · Roman · YTCH14 v3 → v4 03.10: серое a −2,8…−4,8 → |a|, |b| ≤ 0,7, двор b −7,6 → −0,6 · YTCR04 · YTCH11 · YTUVIE 1.1.1 v1.4 07.10 · 3.2.2 24.10
CO20Color
CO20Colorcanon

Highlight knee per scene against overexposure

  • плечо светов в профиле цвета: с какого стопа и как мягко сжимать света сцены (окна, небо, белые стены, лицо в солнце) + поправка экспозиции куска
  • окно, упёршееся в потолок сенсора (S-Log3 0,875, D-Log 0,588), коррекцией не вернуть: экспозицию ниже, середину и тени поднять
  • колено кривой выше потолка сенсора — серая пелена на выбитом окне
  • пересвет — одна из самых частых правок (≈ 20 из 132): плечо светов ставить с первой версии
999_extra/story_map/story_color_ref.py (knee_st, hk, knee_scene, manual.dev) · 05_editing/0516_review_room/color_room.py (round tests)
12.10 · Roman · YTEVO03 круг 1 комнаты цвета 12.10: «улицу виднее, похоже на Netflix» · v6–v10 13–14.10: правки П1.15, П1.17, П2.11, П2.13
CO21Color
CO21Colorcanon

No milk: black point held, judged on 1:1 crops and at night

  • «молоко» = поднятое чёрное при большой экспозиции и срезанные окна: плечо в линейном свете до отсечения, точка чёрного к p2 ≈ 12
  • ночь в машине: точка чёрного держится, тени не поднимаются в серое и рыжину; шум и цвет ночи — на каждом плане отдельно
  • правило «поднять тёмное лицо на +1 ст.» на ночи; сжимать выбитые окна — без рисунка они становятся серой дымкой
  • молоко от подъёма теней, текстуры и шумодава числа не ловят — судить кропами 1:1 и сравнением в 4K
999_extra/story_map/story_color_fix.py --mode3 · story_color_ref.py · story_color_check.py
06.10 · Roman · YTEVO03 v3 06.10 · v5–v6 12–13.10: ночь Pocket 0066 и ZV-E1-1941 · YTUVIE01 13.10: №19 принят после 1080p и 4K-сравнения
CO22Color
CO22Colorcanon

Colour judged on 10-bit log frames, never on an 8-bit draft

  • проявку, экспозицию и лут выбирать по кадрам 10 бит с лога: под цветокор оригиналы скачиваются в проект 1:1
  • кропы лица для проверки — из исходника (16 бит), а не из 8-битного черновика
  • прокси по контракту — тот же цвет (ΔL ≤ 0,07), кадры страниц можно брать с него; гамма и битность — только с оригинала
  • после сдачи монтажёру локально — только прокси, оригиналы снова с Drive к финалу
15_color/1503_color_apply/color_apply.py (gamma and bit depth from originals) · story_color_ref.py (frames from the 10-bit proxy)
29.09 · Roman · YTCH14 29.09: оригиналы скачаны под цвет · YTUVIE01 13.10: кропы 1:1 из 16-битного исходника
CO23Color
CO23Colorcanon

Closed-loop colour solve on frames of the real render chain

  • куб группы прогоняют по кадрам планов той же цепочкой, что рендер частей, мерят лицо, правят ev, post, кожу и насыщенность и повторяют
  • пока лицо 134 ± 10, кожа 46–56°, насыщенность 18–30 и серое в норме; --match ровняет вторую камеру сцены, --pieces — свой цвет плану
  • решать по доске: цвет доски ≠ цвет фильма — крыша вышла с лицом 206, храм — 80
  • vibrance кожу не двигает — нужна общая sat
999_extra/story_map/story_color_fix.py --project P [--groups G1,G2] --from v1 --to v2 (--match, --pieces, --mode3) · ffmpeg lut3d at full resolution
05.10 · Roman · YTEVO03 v1 → v3 05–06.10: лица 206 и 80 исправлены · YTCH14 v4 05.10: Маша на закате — кожа 37°, насыщенность 9 при 21–22
CO24Color
CO24Colorcanon

Develop by the measured gamma; an unknown gamma is a refusal

  • проявка — детерминированно по камере и гамме с оригинала: Sony — сайдкар M01.XML, DJI — тег com.dji.camera.ColorGammaSxS
  • незнакомая гамма — отказ с именем клипа: refused непуст — план не пишется (код 3), клип без куба в рендер не идёт
  • skipped (уже Rec.709) ≠ refused; покрашенный участок — graded [[от, до]], плоский экспорт без метаданных — gamma_override
  • имя камеры и прокси — не основание; куб без записи в манифесте или с чужим sha256 — тоже отказ
15_color/1503_color_apply/color_apply.py --project P [--apply] [--verify] · 0511_story_cut/sc_media.py index · job graded, gamma_override · solo.py develop_for
22.09 · stage canon · YTEVO03 09.2026: 61 клип DJI из 163 (37 %) под кубом S-Log3, luma 58 → 23 · YTCR04 03.10: первые 154,5 с — готовый Rec.709 из DaVinci
CO25Color
CO25Colorcanon

Group cube per scene and camera, own exposure and skin per shot

  • куб — на группу «сцена · камера» по 5–6 планам речи; у плана поверх — своя экспозиция по лицу, кожа и точка чёрного (этап 17: лицо 125 ± 7, p2 8)
  • лицо к цели шагом 1/8 ст.: вверх ≤ +1, вниз до −2,5; свет меняется внутри клипа — свой куб на кусок речи (доля 0,75)
  • решать фильм по группе или медиане: в соборе C* 54 при медиане 27; брак плана — свой цвет плана, а не правка группы
  • ложный замер лица даёт +2 стопа — предел (YTCH ±0,6) и лист крайних; ручная точка чёрного заменяет групповую, а не прибавляется
story_color_ref.py pieces | strip --jobs 7 (manual, manual_clip in {CODE}_color_ref.json) · 0514_teaser/grade_norms.py solve | merge · 0511_doc_cut/shot_ev.py · sc_color.py plan (color.match)
05.10 · stage canon · YTCH14 05.10 · YTEVO03 v4 08.10: свой куб у 236 из 392 планов · v9 14.10: 567 планов · YTAgeFree16 13.10: лицо в норме у 82 → 223 из 280 планов · YTCR04
CO26Color
CO26Colorlive

Exposure set in log, in linear light, before the develop cube

  • экспозиция и баланс — в линейном свете до проявки (лог → линейный × 2^ev → лог); пересвеченный лог опускают 1D-кубом pull в логе
  • число после проявки: света уже сжаты плечом, белое серит, лицо плоское; до 05.10 сдвиг кода поднимал чёрное — молочная тень
  • предложенный порог: в логе — когда до цели больше ≈ 0,4 стопа вниз и p99 после сдвига ниже ≈ 200; немеченые — bt709 и in_range явно
  • развилка P1-4 с курсом о месте экспозиции — решает Роман
05_editing/0510_headless_cut/solo.py (color.pre_stops, slog3_pull_cube) · 0510_autocut/color.py bmd5_pull_cube · 0511_doc_cut/color.py build · shot_ev.py
02.10 · YTEVO02 · YTEVO02 02.10: камера BMD Gen 5 +2 ст. → сдвиг в логе · YTCG37 v2 03.10: pre_stops −1,2 (кожа 37/48/56) · YTCH11 04.10
CO27Color
CO27Colorcanon

Face target from the channel profile, learned from Roman's picks

  • цель яркости лица — ДНК канала в color_profile.json (exposure.target_face_luma, у YTEVO 134), а не умолчание движка
  • цель учится по правкам: в файле выбора хранится пара «машина, человек» по каждому клипу, где Роман пошёл против машины
  • цель, выученная на светлой коже, тёмную пересвечивает: под героя — color.target_face (YTCR04 — 72)
  • профиля нет — мерить вышедший ролик канала (YuNet, центр 70 % рамки) и давать доску лестницей вокруг цели
YTs/{CH}/color_profile.json exposure.target_face_luma · 15_color/1502_lut_pick/lut_board.py --feedback -> {CODE}_color_choice.json (corrected) · color_plan.py save_choice · sc_color.py plan
22.09 · Roman · YTEVO 22.09: 134 по 18 правкам из 162 (стартовые 150 — догадка) · YTCR04 — 72 · YTFP02 04.10: 140 по YTFP01 v4 вместо 112 движка
CO28Colorcanon

Face window on a finished export: tracked oval and Gain, titles keyed

  • тёмное лицо в готовом экспорте монтажёра — окно на лицо: овал с трекингом, большая растушёвка, Gain 1,03–1,32 на план и немного Gamma
  • фон, чёрное и контраст — от грейда монтажёра; вшитые титры вырезать ключом по их точным цветам; на склейке окно гаснет и нарастает
  • гамма на весь кадр: картинка плоская, титры светлеют и истончаются; план с Gain ≤ 1,02 не трогать
  • на уроках с логом маски сняты 24.10 (край ходит вокруг человека) — окно для готового экспорта; в тизерах — мягкий эллипс (trailer.py)
YTUVI01 08_Cut/v7_review/v7_color.py plan | preview | render (YuNet tracks) · 05_editing/0514_teaser/trailer.py (face_mask)
13.10 · Roman · YTUVI01 v7 13.10: машина 0:09 и кафе после жалобы на гамму v6 · трейлеры YTCG39/YTCG42 05–07.10 · тизеры YTAgeFree S3
CO29Color
CO29Colorcanon

Faceless inserts: channel look only, brightness of their own scene

  • перебивки без лиц (B-roll, сток, архив) по нормам кожи не сводятся — им ставится только look канала
  • яркость перебивок — к сцене интервью, в которую они встают (а не к средней 107), подъём ≤ +0,3 EV; вертикаль на тёмном фоне — без поправки
  • перенос палитры (color-matcher MKL) годится только для перебивок без лиц, с силой < 1: на лицах MKL гасит контраст на 30 %
  • скачки кожи — чаще смена человека или крупности: проверять листом пар кадров
YTUAE01 qa_color.py · 15_color · story_cut, doc_cut · trial: color-matcher 0.6.0 TransferMVGD (mkl_solver)
16.10 · Roman · YTUAE01 16.10 «цветокор, чтобы не скакал» · проба YTEVO03 14.10: MKL по лицу — σ контраста 48 → 34
CO30Colorcanon

Second camera matched to the main one at the same second

  • боковая камера своей цели не получает — её ведут к основной в тот же момент: кожа, белое и чёрное одежды, контраст фигуры как у FX3
  • по коже — общий сдвиг + остаток по части; чёрная точка по каналам к готовой основной; усиление по каналам, посчитанное по лицу героя
  • глобальный перенос цвета — кожу не сводит; камеру без лога под соседнюю не подгонять: общие цели курса
  • нейтрали — глазами: у камеры против окна полная поправка розовит окно (YTCR04 взяли 60 %)
05_editing/0513_lesson_cut/zv_match.py (color.zv_match) · qa/zv_pairs.py, black_fix · 0511_story_cut/sc_color.py plan · 0510_headless_cut/color.py measure | build | board | check
03.10 · Roman · YTCR04 03.10: C63xx к FX3 · YTTRBM01 03.10 · YTUVIE 1.1.1 v1.4 07.10: L 57,7 к 57,9 · 12.10: чёрное ZV-E1 9–11 → 7,0 · проба YTEVO03 14.10: ΔE 4,0 → 0,5
CO31Colorcanon

Skin difference at every camera cut measured as Delta E 2000

  • «лицо одного цвета на всех камерах»: на каждом стыке «другая камера» мерить кожу и считать ΔE2000, расхождения править до рендера
  • на уроке — пары склеек в ту же секунду: лицо, чёрная и светлая части фигуры, тени, середина, насыщенность, резкость лица
  • ниже 1 ΔE глаз разницы не видит, 1–2 — только при пристальном сравнении; порог приёмки подбирать на фильме; рядом — CAM16-UCS
  • плохую маску кожи формула не исправит
05_editing/0513_lesson_cut/qa/zv_pairs.py · qa/de2000.py · qc_film.py · 0510_headless_cut/color.py skinreport --ver v3 (colour-science) · story_color_check.py
03.10 · Roman · YTCR04 v7 03.10: 66 стыков · YTUVIE01 1.1.1 v1.2 05.10: скачок тона кожи 2,2° → 0,8° · блок 3 25.10 · YTTRBM03 v3–v4
CO32Color
CO32Colorlive

Skin measured on cheeks and forehead by face landmarks

  • кожу мерить по точкам лица: щёки и лоб без глаз, губ, бровей, носа и бороды, а не по центру рамки, куда у бородатых попадает борода
  • одного человека сравнивать в одной сцене на разных камерах; личность — SFace; лица без точек (профиль на общем) — прежняя маска YCrCb
  • по точкам яркость кожи выше: норма ≈ 142 ± 10, а не 112 ± 8; лист лиц глазами — одна «Дарья» оказалась двумя группами света
999_extra/vision_landmarks.swift -> 999_extra/bin/vision_landmarks · 05_editing/0510_headless_cut/color.py skinreport · YTEVO03 v10/_tools/skin_v10.py, skin_cards_v10.py (YuNet + SFace)
15.10 · YTEVO03 · YTEVO03 v10 14–15.10: три расхождения (Лисий Нос, обед FX3 и ZV-E1, Pocket в машине) · YTTRBM03 25.10
CO33Color
CO33Colorcanon

Non-log footage: no develop, match the cameras, expose by the face

  • съёмка без лога (S-Cinetone, Rec.709, айфоны 8 бит): проявлять нечего — камеры подгоняются друг к другу, экспозиция по лицу, потом look канала
  • панель цвета отказывает на незнакомой гамме «s-cinetone» — решение пишется в задание явно; развилка P0-1 (слой look + экспозиция) — за Романом
  • уроки: FX3 в S-Cinetone — псевдо-S-Log3 в общую цепочку, баланс по камере в логе той же секунды; не-Sony так нельзя — двойная проявка
05_editing/0511_story_cut/sc_color.py · 0511_doc_cut/color_lab.py (iPhone) · 0510_autocut/color.py (A7 III look only) · 0513_lesson_cut/course_color.py (pseudo S-Log3)
03.10 · Roman · YTCG42 и YTCG48 03–04.10: ZV-E1 Rec.709, FX3A S-Cinetone, айфоны SDR · YTCH14 v4 03.10: айфон — баланс, тон и look · YTUVIE блок 3 23.10
CO34Color
CO34Colorcanon

Underexposed camera: denoise first, sharpening near zero

  • темновато снятую камеру (ZV-E1 на 2–2,7 стопа темнее FX3) чистят шумодавом первой нодой, до подъёма экспозиции
  • резкость — около нуля; шум второй камеры не выше основной — пункт самопроверки
  • 12.10 мягкую ZV-E1 тянули резкостью CAS к FX3 (лапласиан 189 против 322) — 13.10 CAS 0,5 на поднятой камере подчеркнул шум
05_editing/0513_lesson_cut color_lab (denoise node) · screens_lesson.py (color.sharpen, CAS 0-1)
13.10 · Roman · YTUVIE01 урок 1.1.1 v1.5 12.10 → 13.10: ZV-E1 «жёсткая»
CO35Color
CO35Colorlive

LUT library: manifest in git, immutable cubes, pre, develop and look

  • 169 записей (проявка 137, look 27, pre 2, legacy 3); байты неизменяемы (0444) и лежат на Drive, в git — только manifest.json с sha256 и метриками
  • ступень — по папке-источнику; доказательство: комментарий внутри куба > путь в архиве > имя файла
  • Lumetri ссылается на имя файла: куб не переименовывать — новое имя = новый куб; правило *.cube в .gitignore не добавлять
  • в проекте один дом — 01_Source/00_LUT/: кубы плоско наверху для монтажёра, кухня выбора — в _build/
15_color/1501_lut_library/lut_lib.py --import | --validate --deep | --list | --sync --push --apply · manifest.json · 15_color/lut_home.py --project CODE --apply
22.09 · stage 15_color · YTEVO03: в проект уехали 3 куба (две проявки и look__newstar) · YTUVIE 25.10: кубы Pocket 4P курса = файлы библиотеки, MD5 сверены
CO36Color
CO36Colorcanon

Preview stop is not a Lumetri stop: multiply by 2.4

  • превью считает экспозицию поверх гамма-кодированного Rec.709, Lumetri линеаризует до экспозиции: стоп Lumetri = 2,4 × стоп витрины
  • пересчёт делает код (LUMETRI_GAMMA = 2.4), руками не набирать; утверждённые кадры верны как изображение — расходится только число
  • предел ползунка ±7: клипу, которому не хватит, — отказ с именем, а не зажатое число; на живом Premiere ещё не сверено
15_color/lumetri_gamma.py --base exp_000.png --lift exp_120.png --stops 1.2 · 1502_lut_pick/color_plan.py to_lumetri_stops · color_apply.py (exposure_multiplier)
22.09 · stage canon · YTEVO03 22.09: ступени витрины −1…+2,5 → Lumetri −2,4…+6,0 на 162 клипах; тождество проверено на 30 комбинациях
CO37Color
CO37Colorcanon

Develop cube chosen by its crushed-shadow share on dark clips

  • проявку выбирают по одной мерке — доле кадра, утопленной в чистый чёрный (black_share): зажатую тень не вернуть
  • до 6 кандидатов на камеру — на двух тёмных клипах каждой камеры; серый клин только отбирает, решают кадры дня
  • счёт «яркость + насыщенность»: загнал 115 клипов из 163 в 03_dark_scene; равномерная выборка дала 0 % у всех проявок
15_color/1501_lut_library/lut_select.py recommend_develop · manifest.json (black_share) · 1502_lut_pick/lut_board.py
22.09 · Roman · YTEVO03 22.09: Sony neutral legacy 0,00 % против neutral 2,01 %, DJI D-Log2 minus 0,04 % против plus 23,39 % — профиль подписан Романом
CO38Color
CO38Colorcanon

Nine-step colour chain for code-built films, baked per group

  • баланс → проявка 100 % → экспозиция по лицу → тон с тенью лица → vibrance → look неполной силы → доводка баланса → кожа → тень лица
  • сочность — vibrance, а не saturation: поднимает ненасыщенное и бережёт кожу (doc_cut 0,18, Color by Reference 0,25)
  • тень лица (p20 кожи) ≥ 0,74 середины кожи; look углубляет тени — после него второй проход и пересчёт экспозиции
  • ступени канона 15_color — шаги 2, 3 и 6; решения на кадрах 480×270, показ 960×540; у всех вариантов одна кожа
05_editing/0511_doc_cut/color_lab.py --job J --tag v4 -> color_page.py (lift_face_shadow, solve_skin) · 0514_teaser/grade.py board | bake
03.10 · Roman · YTCH14 «Катя» v3 → v4 03.10: 23 сцены, флажки зелень 8 → 0, синева 6 → 0, плоско 5 → 3 · уроки YTUVIE · тизер «Великие Луки» 06.10
CO39Color
CO39Colorcanon

Tone curve by two skin points: median 41 percent, highlights 62

  • кривая по двум точкам кожи: медиана → 41 % (104/255), света кожи p95 → 62 % (158/255); светлая одежда ≤ 75 %, чёрное на месте
  • одна точка кожи: поднимает середину, а света улетают (света 77 %)
  • мультикам без лога: общий план сводится к крупным по коже и светлой ткани, экспозиция — в линейном свете (gbrpf32)
05_editing/0510_headless_cut/color.py measure -> build --ver v2 [--skin 104,158 --white 190] -> board -> check
02.10 · stage canon · YTLAB01 v1 «выглядит как пересвет» → v2 · YTCH14 · headless v2d на 8 % темнее
CO40Color
CO40Colorcanon

Teaser and trailer grade: full develop plus a creative look

  • тизер и трейлер: проявка 100 % + креативный look на 0,3–0,6 + кожа, куб на план; look выбирается доской, иначе объявляется умолчание
  • одна проявка — плоско, «молоко»: «есть проявочные луты и есть креативные, может ты не то делал»
  • сила look — развилка P1-7: по курсу неполная (Идеальный 0,6, Blumarine 0,3), на YTEVO03 60 % дало бедный цвет — вернули 100 %
05_editing/0514_teaser/grade.py board | bake --look gold:0.6 · 0511_doc_cut/color_lab.py (look 0.6 / 0.3)
06.10 · Roman · YTAgeFree S3 трейлер «Великие Луки» 06.10 · YTCH14 v4: Neutral Legacy + Идеальный 0,6 · YTEVO03 v4 08.10: newstar 60 → 100 %, C* 11,8 → 20,2
CO41Color
CO41Colorlive

Colour audit of the finished master: every shot, every person

  • кадр каждого плана мастера (середина длинного куска без экранов): кожа каждого человека, серое, чёрное, контраст, пересвет; --probe — до рендера
  • норма — цветность кожи одного человека между планами ΔE(ab) ≤ 3; потом группы пересчитываются по настоящим лицам фильма
  • по всей записи — кадр каждые N с у каждой камеры, как снято и после куба тем же путём, рядом тот же момент мастера оператора
  • планы под экранами не мерить; числа приёмки — в сообщении: кожа по планам, LUFS и пик, речь N/N
05_editing/0511_doc_cut/color_audit.py --job J --tag v4 [--master <file>] | --probe · color_refit.py solve | bake · 0510_headless_cut/color_qc.py --every 120 · 0515_editor_rerender/color_assess.py
05.10 · Roman · YTCH14 v4 → v5 05.10 · YTCH11 05.10 «везде проверить цветокор» · YTTRBM03 · YTLAB01 · мастер монтажёра v4 (0515)
CO42Color
CO42Colorcanon

Colour self-check before showing: camera pairs, face crops, seams

  • до показа — числами: склейки FX3↔ZV-E1 и стороны лица против целей и эталона, кропы лица 1:1 из исходника, шум второй камеры не выше основной
  • стыки кусков: ev куска — медиана замеров каждые ≤ 2 с, у смежных |Δev| ≤ 0,12; на границе кусок берёт свой куб
  • показывать вариант, у которого красный хоть один пункт; уверенных находок перед отправкой должно быть 0
  • Роману — один вариант с номером и названием, прошлый сохраняется (COLOR_VARIANTS.md); ключ кэша куска включает cube_sig
05_editing/0513_lesson_cut/qa/zv_pairs.py · seam_evs, qc_v11.py, selfcheck --dry
10.10 · Roman · YTUVIE 3.1.4 v1.1 10.10: скачки ±10 на стыках · YTUVIE01 13.10: после 18 проб цвета блока 1 введена самопроверка
CO43Color
CO43Colorlive

Shorts and reels share the film's colour: group cubes, own shot colour

  • рилсы и шортсы той же съёмки не красят заново: берут кубы групп «сцена · камера» фильма, своё у них — только цвет плана
  • своего цвета фильма нет — каждый клип красится своим кубом из 4K S-Log3 по общим целям (лицо 130, кожа 52°, look по силе)
  • отдельная покраска вертикалей: рилсы YTEVO03 вышли «молоком»
story_color_ref.py pieces --job <shorts job> --plan 08_Cut/{CODE}_color_v2.json --to v2s --lut <dir> · YTUVI01 v5/_color7/color7.py · dyn looks, cam_vf
08.10 · Roman · YTEVO03 08.10: рилсы на кубах групп фильма · YTUVI01 шортсы v7 17.10: лицо 130, кожа 52°, look milka 0,6
CO44Color
CO44Colorlive

Log frames lifted for review pages, accepted by signalstats

  • кадры лог-камер для страниц разбора поднимаются превью-фильтром (colorlevels по замеру + насыщенность), чтобы рядом с Rec.709 не выглядеть браком
  • приёмка кадра — числами signalstats, а не глазами; на странице оговорка: это превью, а не цветокор
  • на 10 битах перед colorlevels нужен format=yuv420p, иначе молча чёрный кадр; таймкод кадра прижимать к dur − 0,05
ffmpeg colorlevels + signalstats (s7_frames)
20.09 · YTEVO02 · YTEVO02 20.09, YTEVO03 21.09: страницы разбора с кадрами Blackmagic и S-Log3

Registry · 6

every other approach we used, compact: code, rule, where it is seen, tool

CO45

Light kit: proxies with the film's colour baked in, lavs as tracks

YTEVO03 12–15.10: лайт v5 остановлен («цвета не нравятся») → цвет v10f, v9–v10 в 01_Source_Light⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

лайт — лёгкая копия каждого исходника по контракту прокси (кадр в кадр, таймкод, имена 1:1), всегда 10 бит и bt709, с запечённым цветом фильма
16_proxy/1604_light/light.py plan | fill | scene | run · light_audio.py⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
CO46

Editor's approved grade imported as one 65-point cube per segment

YTCH12 v8 03.10: 158 кубов 65³ по сегментам

готовый разбор цвета проекта (лог FX3 → финальный Rec.709) превращается в один куб 65³ на сегмент и сверяется с утверждённым кадром
05_editing/0511_doc_cut/color_import.py build -> verify -> fix -> mask -> accept --job J --tag v8⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
CO47

New inserts graded to the heroes of the finished film around them

YTAgeFree12 03.10: «Под фильм» в 11 врезках · ре-версии YTAZ

врезка в покрашенный фильм: цель кожи и тёплость серого — с героев этого фильма рядом с местом врезки (вариант «под фильм»), канонные — для сравнения
05_editing/0512_reversion/colorboard.py lab | page | bake | check⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
CO48

Skin retouch over the finished film: face mask and bilateral smoothing

YTEVO02 v9 15.10 (круг Михаила)

последний шаг поверх фильма: лица находит YuNet, по маске кожи — bilateral-сглаживание, тени под глазами светлеют
05_editing/0510_autocut/post.py --depth 16⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
CO49

iPhone HLG footage tone-mapped to SDR with Apple avconvert

YTUVI01 шортсы v3 16.10: макро камней с айфона

айфон снимает HLG BT.2020; в нашем ffmpeg нет zscale — тонмаппинг в SDR делает системный avconvert, сразу вертикаль 1080×1920
avconvert -p Preset1920x1080 -s in -o out⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

live
CO50

Broadcast range check of the master with QCTools BRNG and TOUT

проба YTUVI01 v7 14.10: на 9:00 у 11,3 % пикселей значения ниже вещательного чёрного (тени салона, волосы)⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

BRNG — доля пикселей вне вещательного диапазона, TOUT — одиночные выбросы; кадр-доказательство — в отчёт приёмки до заливки
ffmpeg signalstats=stat=brng+tout · 999_extra/oss_solutions/proofs/qc/brng_card.py · 999_extra/video_tech_qc.py video_scan⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

trial

Код подхода постоянный — по нему подход называют в плане фильма и хэндоффе. new — решения Романа и Тани 02–26.10 из хэндоффов и памяти: раньше их не было ни на одной странице. Пунктир — open: в фильм только после решения Романа. Как добавить новый подход — Edit · Add.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Cameras

Две беззеркальные Sony и три DJI: гамма, проявка, своя цепочка и пример из комнаты цвета.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

C1
FX3 · as shot → graded (YTUVIE 3.1.2)
C1mirrorlesslive

Sony FX3A

Gamma: S-Log3 · S-Gamut3.Cine · 10-bit 4:2:2
Develop: sony__slog3_sgamut3cine__rec709__neutral__legacy⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

  • проявка по гамме из сайдкара M01.XML, на 100 %; главная камера — эталон для остальных
  • YTUVIE — своя цепочка №19 (принята 13.10), куб Артура снят; YTEVO и YTCH — neutral legacy
  • S-Cinetone без лога (день 2 YTUVIE) — через псевдо-S-Log3, отдельный случай
C2
ZV-E1 · as shot → now → proposed
C2mirrorlesslive

Sony ZV-E1

Gamma: S-Log3 · 10-bit
Develop: as FX3 + match to FX3 at the same second

  • не своя цель, а «как FX3 в ту же секунду»: кожа, белое и чёрное, контраст фигуры (zv_match: мягкое окно + светлое золото)
  • баланс теней по груди: чёрная футболка не уходит в коричневое
  • снимает на 2–2,7 стопа темнее FX3 — шумодав первой нодой, до подъёма
C3
Pocket · 6 variants vs FX3 at the same second
C3DJIlive

DJI Osmo Pocket 4P

Gamma: D-Log2 · 10-bit
Develop: dji_pocket4p__dlog2__rec709__plus | minus

  • своя цепочка DJI: проявка своей камеры → лицо по FX3 той же секунды → баланс по коже → творческий сверху по выбору (IDOL)
  • вести через цепочку Sony — двойная проявка, лицо красное (25.10)
  • звук — два потока: a0 петлички вживую, a1 свой микрофон
D-Log Mdevelop after the decision
C4DJIopen

DJI Osmo Nano

Gamma: D-Log M · from clip metadata
Develop: not in profiles: refused until decided⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

  • D-Log M без открытой спецификации и разный у камер DJI → официальный куб DJI своей модели (рилс @colorist.ivakin 12.10)
  • что курс говорит о проявке Nano — только в зоне courses (свой пароль): платное на карту не выносим
  • проба на клипе Nano → «ок» → строка в профили каналов
  • проба 26.10: официальный куб DJI для Nano = кубы Action 4 и 5 Pro = куб курса; на 100 % кожа C 39 и 1,5 % кадра в чёрном, на 55 % — C 32, чёрное 9,2 · Proof ↗ — ждёт решения
  • движок 0514 YTAgeFree считает Nano камерой Rec.709 без проявки, а 91 из 97 клипов Nano на Drive — D-Log M
D-Log M?develop after the decision
C5DJIopen

DJI Osmo Action

Gamma: D-Log M (new camera, to verify)
Develop: none yet: clip metadata first, then the DJI cube of this model⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

  • камеры ещё нет в парке носителей (cards.json) — завести (бэклог B15)
  • тот же путь, что Nano: гамма из метаданных → официальный куб модели → проба → «ок»
  • 26.10: клипов Osmo Action нет ни на одном носителе и на Drive — нужна модель (Action 4 и 5 Pro — тот же куб, что у Nano, у Action 6 — свой) и 10 с D-Log M

Коды C1–C5 — те же, что в парке камер на /map/ · Cameras. Гамма — только из метаданных: Sony — сайдкар {stem}M01.XML, DJI — тег com.dji.camera.ColorGammaSxS (в оригинале). Незнакомая гамма — отказ с именем клипа: S-Log3-куб на D-Log2 топит яркость 58 → 23.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Color room

Как Роман смотрит цвет сейчас: ролики по 4 с «как снято → в цвете», варианты рядом, ✓ ✎ ✕ и отзыв у каждого.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

4 s loop
One moment · FX3 graded · ZV-E1 now · ZV-E1 proposed: one second, both cameras
variants
Pocket 4P · via Sony · course develop only · DJI plus and minus to FX3 · + IDOL 50 % · FX3 same second
Color roomlive

How the color room works

  • ролик 4 с на клип — цвет видно в движении: мерцание, край маски, скачок на склейке (CO13)
  • варианты рядом в одной плитке: «как снято → сейчас → предлагаю»; одна секунда со всех камер
  • у каждого ролика — ✓ OK · ✎ Needs work · ✕ Drop и отзыв; «Send to Claude» будит сессию
  • новая версия — в ту же комнату: v1 → v2, отмечено, что сделано по каждому отзыву
  • кадры по-прежнему нужны для чисел (лицо, кожа, чёрное) — решают по роликам

блок 3: ролики по урокам — FX3 и ZV-E1 «как снято → в цвете», варианты Pocket; v1 → v2⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

25.10

кубы камер v1 → v2: кожа Ксении сведена с остальными (C 15 → 18, тон 24° → 30°)

25.10

мягкий цвет по одобренному тизеру: лицо 142, чёрное 18

18.10
$V color_b3.py fit · clips · data --ver vN → screens_portal.py publish

Фильм: color.py page → color_portal.py publish (0510) · grade_norms.py → color_portal.py (0514). Страница цвета в Claude с 💬 к кадру (CO6) — прежний способ, комната на портале заменила её с 18–25.10.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Choose

Что видно на кадре — и каким подходом это лечится.

If something is off

symptom in the frame → approach

Milky: dull and hazy

look канала на 100 %, точка чёрного p2 → 8, сочность к эталону

CO5 · YTEVO03: C* 12 → 20

Face red or orange

кожа к 56°, потолок плотности C 38 на плане

CO7 · Darya: 33° → 55°

Night with an orange cast

правка клипа: R ×0,90, B ×1,12, чёрное ≥ 0,06

CO3 · YTEVO03 night in the car

Pale skin on one camera

общий план + серое → вторичка только кожи (skinmatch)

CO11 · YTTRBM03 Ksenia

Too harsh, faces all eyes

мягкий финиш по одобренному эталону того же материала

CO10 · YTAgeFree16

Lessons of one shoot differ in color

одна цепочка на камеру: solve19 --lock

CO8 · YTUVIE 3.1.3

Pocket turns red in the Sony chain

своя проявка DJI + творческий сверху

CO9 · YTUVIE block 3

DJI developed with an S-Log3 cube

отказ: гамма только из метаданных, незнакомая — стоп

CO4 · YTEVO03: 61 clips of 163

Проявка — по камере и гамме: раздел Cameras.

Group cube

Один куб 65³ на группу «сцена · камера» — что в нём слоями; три плана YTEVO03 «было | стало».⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

↑ top: what the viewer sees
skin_cap: skin density ceiling
только у планов с рыжей кожей: C > 38 → 33, узкая полоса вокруг тона кожи плана, фон не трогает
shot
Overall saturation
sat ≤ 1,6 с потолком эталона: C* ≤ 36 в среднем, ≤ 42 у кадра
Black point
blk ≤ 0,14 (ручная — до 0,26); цветное тёмное не давить
Skin
поворот к 56° в полосе телесных + плотность kc ≤ 1,15
Grey balance (post)
после лука, в линейном свете; тёплый интерьер — серое b 1,5
Channel look at 100 %
newstar YTEVO: сочность, бирюза в синем, тёплое матовое чёрное; было 60 % — отсюда «бедно»
channel DNA
Vibrance 0,25
сочность фона, кожу бережёт [курс 080 02:57]
Shadows-below tone + soft shoulder
0,12→0,075 · 0,30→0,26 · 0,80→0,765 · 0,93→0,905: контраст через тени [курс 041 08:51], облака и белое с рисунком
Develop by gamma
S-Log3 · D-Log2 · Rec.709 — по камере; незнакомая гамма = отказ
Log × 2^ev × balance → shoulder before clipping
экспозиция группы в стопах
↓ bottom: camera log

Сетка — 65³, не 33³: на поднятом логе кожа попадает в ~14 узлов сетки 33³, и поворот кожи 28° доходит до кадра как 7°.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Color page: folders scene → camera, before | after and a comment per frameArtifact · comments
Color page: folders scene → camera, before | after and a comment per frame

Before → after · YTEVO03

three shots of the film, the same chain as the render

Office · milky → richv3 | v4
Office · milky → rich
Darya driving · red face → alivev3 | v4
Darya driving · red face → alive
Night in the car · orange cast removedv3 | v4
Night in the car · orange cast removed

Course

Что взяли из курса Серёжи и где канон расходится с курсом.

coursedigested

Color & Camera Settings by Seryozha (Hollywood tier)

Курс платный: что он говорит, с источником [урок мм:сс], — только в зоне courses (свой пароль), уроки, луты и кадры — на Drive. Здесь — наш канон: где он расходится с курсом, развилка с номером решается Романом. Камеры курса под наш стек: Sony FX3A, Sony ZV-E1, DJI Osmo Nano, DJI Osmo Pocket 4P.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

python3 ~/YTAI/scripts/999_extra/course_kb_search.py "<query>" --course color-grading
TopicOur canonvs course
Developодна на гамму и камеру, 100 % (P1-8)match
Exposureчислом по лицу, решать после look (P1-4)fork
Lookодин на канал; YTEVO newstar на 100 % (P1-7)fork
Balanceпо нейтральным в линейном свете до проявки (P2-13)fork
Sony skinвторичка в Lab: 56°, C ≤ 38 (CO7)match in essence
Pocket 4Pсвоя цепочка DJI (CO9), 25.10match

Numbers

Константы story_color_ref.py и файл фильма; отступление — только с причиной.

Face luma, 0–255
125± 7 · reference 131
80180
ночь 116 · тёмный интерьер — по середине кадра · каналы: YTEVO 134, YTUVIE 131, YTAgeFree 142 (мягко)
Skin hue, ° Lab
56°± 6 · reference 61°
3075
61° на мужских лицах желтит; красное лицо — 33–45°
Skin chroma, C
31± 4 · ceiling 38
1060
выше 38 — рыжая: skin_cap на плане
Black, p2
8night 14
030
на светлых кадрах поднятое чёрное читается «молоком»
Frame chroma, C*
18–36≤ 42 per frame
050
YTEVO03 v4 — 20, эталон — 31; ≥ ×1,5 к прошлой версии
Grey after look
±2|a|, |b| Lab
−88
Идеальный уводит серое в зелень (a −2,2), Blumarine — в синеву → доводка после look

Полоса — допуск, чёрная метка — цель, цветная — эталон или граница, о которой говорится в подписи.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Toolbox

Эталон, план, цепочка, комната цвета, канон ступеней и поиск по курсу.

story_color_ref.py

live

эталон: мерки, цели фильма, solve · plan · pieces · strip · pairs

$V $SM/story_color_ref.py ref --ref-video <reference>

story_color_plan.py

live

базовый план: группы «сцена · камера», проявка по гамме, look

$V $SM/story_color_plan.py --project $P

story_color_folders.py

live

страница цвета: все камеры папками, 💬 к кадру

--target artifact --inline

15_color · color_apply.py

live

канон ступеней: проявка по гамме+камере, экспозиция числом, look канала

color_apply.py --project <path>

lut_board.py

live

доска «проявка × look» на кадрах — выбор по ссылке

15_color/1502_lut_pick/lut_board.py

color.py skinmatch (0510)

live

вторичка только кожи одной камеры, проверка через куб

color.py skinmatch --cam cam2

color_lesson.py solve19 --lock (0513)

live

одна цепочка на съёмку

solve19 --lock <урок>

course_kb_search.py

live

поиск по курсу цвета с источником [урок мм:сс]

course_kb_search.py "<query>" --course color-grading

Next

Решения из сети под цвет: ΔE кожи, метрики вещательного диапазона, перенос цвета, маска кожи, мишень ColorChecker, ACES.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Кандидат попадает в фильм только через пробу на кадре настоящего фильма и «ок» Романа — тогда он становится подходом с кодом. Звёзды, лицензия весов и Mac проверены у каждой строки (исследование 14.10).⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Take now

first to try · 2 of 9

our proof
Take now#100K23effort S

colour-science: skin ΔE2000 between shots

Эталонная библиотека цвета: ΔE2000, CAM16-UCS и Oklab, матрицы коррекции (Finlayson root-polynomial), чтение и запись .cube⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Where: 999_extra/story_map/story_color_check.py и color_lab.py (мерки), 05_editing/0514_teaser/grade_norms.py (решатель)⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

★ 2.7kBSD-3-Clausesource ↗
our proof
Take now#101K24effort S

QCTools metrics BRNG / TOUT in our acceptance

Ключевые метрики QCTools: BRNG — доля пикселей вне вещательного диапазона, TOUT — одиночные выбросы (битые пиксели, искры рендера), VREP — повтор строк⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Where: 999_extra/video_tech_qc.py, функция video_scan: добавить флаги к signalstats, пороги — рядом с TARGETS⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

★ 390GPL (no app needed)source ↗

Proofs

proofs on our own footage · 3

our proof

Matching two cameras: skin differs across the frame

YTEVO03, обед: план B (ZV-E1) к плану A (FX3). По всему кадру кожа остаётся серой (C 5,2 при 8,2 у эталона); MKL по лицу попадает в кожу, но гасит контраст на 30 %; усиление по каналам по лицу — кожа как у эталона (h 48,0° и 48,1°), контраст цел. № 102 color-matcher⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Tryfor T1 · YTEVO03footage: YTEVO03
our proof

Skin of two cameras as a number: ΔE2000

YTEVO03, обед, лицо одной героини: до сведения ΔE 4,0 · MKL по кадру 2,9 · усиление по лицу 0,5 (ниже 1 глаз разницы не видит, 1–2 — только при пристальном сравнении). «Лицо жёлтое» становится числом в приёмке. № 100 colour-science⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Take nowfor T1 · YTEVO03footage: YTEVO03
our proof

Acceptance: shadows below broadcast black in the final YTUVI01 v7

signalstats нашего ffmpeg (метрика QCTools) по мастеру v7: на 9:00 у 11,3 % пикселей значения ниже вещательного чёрного — тени салона, волосы, платье (жёлтым); на YouTube там будет чистый чёрный без деталей. На других кадрах 0–2,4 %. Та же проверка — итогам уроков YTUVIE01 до заливки. № 101 QCTools-метрики⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Take nowfor T2 · YTUVIE01footage: master YTUVI01 v7

Try

trial on a film frame · 3

#102

color-matcher (Reinhard, MKL, HM-MVGD-HM) ↗

Перенос цветового распределения кадра-образца на кадр: Reinhard, MKL, HM-MVGD-HM; есть w2-дистанция как мера сходства
Проба подтвердила: для лиц — патчи или усиление по коже; MKL по всему кадру — только перебивки без лиц, с силой < 1.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Tryeffort S
#103

ffmpeg colormap + haldclut → shot-matching cube ↗

Встроенный фильтр: до 64 пар цветных патчей «исходник → цель», интерполирует между ними; прогон по haldclutsrc запекает это в LUT
Фильтр уже в нашем ffmpeg и делает ровно сопоставление по патчам — дешевле любой новой библиотеки⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Tryeffort S
#104

Skin mask from face landmarks: MediaPipe Face Landmarker or Apple Vision ↗

478 точек лица → полигоны щёк и лба без глаз, губ, бровей, бороды и волос; кожу мерить только там
Дешёвое улучшение главной мерки цвета; то же без новой зависимости даёт VNDetectFaceLandmarksRequest в нашем Swift. Для детекции лиц в шортсах MediaPipe не нужен — там YuNet и Vision.⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Tryeffort S
Later 2 · Skip 2
#109

colour-checker-detection: ColorChecker chart → camera matrix ↗

Находит мишень ColorChecker Classic 24 в кадре и выдаёт цвета 24 патчей → матрица или куб сведения каждой камеры к эталону
Меняет процесс съёмки, а не только код; брать, когда мишень войдёт в чек-лист съёмочного дня⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Latereffort M
#110

OpenColorIO 2.6 + ACES 2.0 ↗

Общее рабочее пространство ACEScct для всех камер (S-Log3, Apple Log, D-Log) и вывод ACES 2.0 с бережной кожей; всё запекается в .cube
Правильная архитектура, но текущий канон работает; брать, если сведение по коже и патчам не закроет разницу камер⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Latereffort L
#114

davinci-resolve-mcp ↗

Полный доступ Claude к Resolve; офлайн-модуль: кожа между камерами, баланс по нейтральным патчам, match-to-reference, импорт CDL
Skip — Resolve не в стеке, а цветовые идеи у нас уже реализованы точнее⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Skipeffort L
#115

color-grade-ai: a Claude skill for cubes ↗

Скилл Claude: разбор кадра → коррекционный .cube для Resolve и Premiere, сведение плана к образцу (match_grade.py)
Skip — подтверждает, что наша система цвета впереди публичных Claude-скиллов⁠​‌​‌​​‌​​‌​‌‌​​‌​‌​​​​​‌​​‌​‌‌​‌​‌​​‌‌​‌​‌​​​​​‌​‌​‌​​​​​​‌​‌‌​‌​‌​​​​‌‌​‌​​‌‌‌‌​‌​​‌‌​​​‌​​‌‌‌‌​‌​‌​​‌​​​‌​‌‌​‌​​‌‌​​‌​​​‌‌​​​​​​‌‌​​‌​​​‌‌​‌‌​​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌‌​​​‌​​‌​‌‌​‌​‌‌‌​‌‌​​​‌‌‌​​​⁠

Skipeffort S

References

Сохранённые Романом посты о цвете и камерах.

C@claudeai22.10
Roman: «Проверь, всё ли есть»

You can make (almost) anything: 9 Anthropic artifacts, all 9 downloaded

Карта по дневнику прадеда (WWI) · 3D-инструкция плёночной камеры · Letterhand — свой рукописный шрифт · миграция птиц с полевым гидом · Photo Lab — фоторедактор словами вместо ползунков · разбор тредов Slack · 3D-сарай с чертежами.

Take: у нас уже: правки словами по кадрам — страница цвета с 💬 (CO6). На пробу: карта маршрута героя по документам — для ресёрча и страниц истории; 3D «как устроено» — экраны YTUVI; свой рукописный шрифт с кириллицей — для пометок hw-* (у Caveat нет кириллицы, риск решения №1).
C@colorist.ivakin12.10

DJI D-Log M has no open specification

В отличие от D-Log, у D-Log M нет описанной передаточной функции и цветовых координат; он отличается между камерами DJI. Надёжный путь — официальный LUT DJI именно под свою модель (он сразу ведёт в Rec.709).

Take: ответ на открытую строку «Osmo Nano · Osmo Action — D-Log M»: проявка официальным кубом DJI своей модели, проба на клипе каждой камеры; до неё — отказ, как сейчас.
E@ellisvanjason29.09

ToneLab Chroma: a color plugin for Resolve and Premiere

70+ лук-пресетов, переводы 50+ камер в Rec.709, инструменты кожи, зерно и халация в одной панели.

Take: не наш путь: цвет фильмов — кодом и кубами (Color by Reference); зерно запрещено (CO12).

Чужие ролики на сайт не кладём — только описание, вывод и ссылку на пост. Файлы, расшифровки и листы кадров — на SSD: /Volumes/T9-Black-2-RYA/_refs/2026-10-25_roman_saved/. * Instagram (Reels) принадлежит компании Meta Platforms Inc., признанной экстремистской организацией; её деятельность в России запрещена.

Channels

Проявка, look и цель лица по профилям каналов.

ChannelLatest filmDevelop · look · face
YTCGConnect GroupYTCG39 · Review v2no profile: color per film (Color by Reference)
YTCRCore Realty DubaiYTCR04 · Review v11no profile: color per film (Color by Reference)
YTCHGood Deeds BureauYTCH11 · Cut v12S-Log3 → neutral legacy
look: no look
YTEVOEvolutionYTEVO04 · Review v10S-Log3 → neutral legacy · D-Log2 → minus
look: look__newstar · face 134
эталон YTEVO02 v7 · Color by Reference (CO5)
YTLABThe LabYTLAB01 · Delivered v8no profile: color per film (Color by Reference)
YTFPPravmir FoundationYTFP02 · Cut v3no profile: color per film (Color by Reference)
YTTRBMTaraborimYTTRBM04 · Delivered v16no profile: color per film (Color by Reference)
cam2 — skinmatch кожи (CO11), 25.10
YTUVIUVI GemstonesYTUVI01 · Shorts v10S-Log3 → neutral legacy · HLG → iPhone ytai
look: no look · face 120 (proposal)
YTUVIEUVI EducationYTUVIE01 · Review v8S-Log3 → Arthur Popov flat · D-Log2 → minus
look: no look · face 131
одна цепочка на съёмку (CO8) · Pocket — своя проявка DJI (CO9)
YTMSENMultiple Sclerosis (EN)YTMSEN01 · Shorts v7no profile: color per film (Color by Reference)
YTAgeFreeAge FreeYTAgeFree20 · Delivered v11no profile: color per film (Color by Reference)
мягкий финиш: лицо 142 · p2 18 · тон 60° (CO10), 18.10
YTUAEOn the Dotted LineYTUAE02 · Delivered v8no profile: color per film (Color by Reference)

Полностью — на странице Channels: ДНК, экраны, цвет, звук и шортсы каждого канала с примерами.

Add

Need → Search → Candidate → Proof → Roman's OK → Approach → Channel DNA
process, checks and commands → Edit · Add

Та же петля для всех ремёсел: без примера из настоящего выпуска и «ок» Романа кандидат кодом не становится.

Files

Where it lives · 6
~/YTAI/scripts/15_color/

библиотека кубов, доска, канон ступеней

~/YTAI/scripts/999_extra/story_map/story_color_*.py

Color by Reference: эталон, план, страница

~/YTAI/scripts/05_editing/0513_lesson_cut/color_lesson.py · zv_match.py

цепочка №19, ZV-E1 под FX3

~/YTAI/scripts/05_editing/0514_teaser/grade.py · grade_norms.py

кубы планов, мягкий цвет по нормам

~/YTAI/scripts/05_editing/0516_review_room/color_portal.py · screens_portal.py

комната цвета на портале

~/YTAI/YTs/{CH}/color_profile.json · YTs/_courses/library.json

ДНК цвета канала · курс

$V $SM/story_color_ref.py ref --ref-video <reference>
$V color_b3.py clips · data --ver vN → screens_portal.py publish