同色連続のノイズを間引く — まとめ自動生成における「見やすさ」と色のリズム調整
同色連続のノイズを間引く
自動生成のパイプラインに色付けを任せると、時折人間の視覚特性を無視した「やりすぎ」が発生する。 今回は、2ちゃんねるまとめの自動生成で生じていた「隣り合うレスの同色連続」を、簡単なアルゴリズムで解決した記録だ。

今回やったこと / この記事について
まとめ記事の生成エンジン(compose.py)において、LLMが判定したレスの「感情色」が連続する問題を解消した。
具体的には、非OP(スレッド主以外)のレスが直前のレスと同じ色になる場合、後段の感情色を無色化(emotion="なし")する「薄色化(thin_colors)」処理を挟み込むようにした。
スタジオの日常会話
Mix: 「Zashさん、自動生成されたまとめ記事なんですけど、ちょっと画面がピンクだらけというか、チカチカして目が滑る箇所があるんですよね……」
Zash: 「LLMが盛り上がって感情色を連打したな。熱弁してるレスを全部拾うと、強調表示が押し寄せてくる。ネクタイの柄は一本に絞るから映えるんだ。全部がストライプじゃ目がチカチカするだけだろ。」
Mix: 「でも、スレッド主の青は目立たせたいですし、感情が豊かなこと自体は悪くないんですよね」
Zash: 「だから『間引き』を入れる。隣が同じ色なら、後ろをすっと無色に戻す。それだけで画面に呼吸ができる。」
問題:同色のレスが並ぶと画面がうるさい
私たちのまとめ自動生成システムは、LLM(編集者役)がレスの感情を分析し、それに適した色(感情スタイル)を自動で適用する。
- 怒りやツッコミ ➔ ピンク(警告・感情色)
- スレッド主(イッチ/OP) ➔ 青(識別色)
しかし、LLMが感情的と判断したレスを連続で採用すると、以下のようにピンク色の枠や文字が連続で並んでしまう。
[レス14] (怒り感情) ➔ ピンク枠
[レス15] (怒り感情) ➔ ピンク枠
これがスマホの狭い画面に並ぶと、どこが本当に強調したいポイントなのかが分からなくなり、非常に読みづらい。 デザインの基本として、すべての情報が主張し始めると、それは何も主張していないのと同じになってしまう。
解決:同色連続を間引く(thin_colors)ロジック
解決策として、記事をレンダリングデータに変換する直前で、隣り合うレスのスタイルを比較して「同じ色が連続していたら、後ろを無色にする」という薄色化フィルタを噛ませた。
実装したPythonコードは以下の通りだ。
def thin_colors(render: list[dict], posts: list[dict]) -> int:
"""隣り合うレスが同じ色になる連続(ピンク×2 等)を間引く。
イッチ(OP)=青は識別用なので維持。非OPの感情色が直前と同色なら無色化する。"""
pm = {p["no"]: p for p in posts}
prev = "" # 直前レスの実効色
thinned = 0
for it in render:
p = pm.get(it["no"], {})
eff = fa.OP_STYLE if p.get("is_op") else fa.EMOTION_STYLE.get(it["emotion"], "")
if eff and eff == prev and not p.get("is_op"):
it["emotion"] = "なし" # 同色連続 ➔ 後ろを無色に
eff = ""
thinned += 1
prev = eff
return thinned
ロジックのポイント
- イッチ(OP)の青は保護する: スレッド主の発言は会話の構造を理解するための生命線だ。そのため、スレッド主が連投(青×2)したとしても、これは間引きの対象外とし、青を維持する。
- 非OPの感情のみ間引く:
一般参加者のレスで同じ感情色が連続した時だけ、後ろの
it["emotion"]を"なし"に書き換える。 - 実効色(表示されるスタイル)で比較する:
キーは内部的な感情のラベルそのものではなく、最終的にブラウザでレンダリングされる「色(
eff)」のレベルで一致判定を行っている点だ。
効果と検証
このフィルタをパイプライン(compose_one)に組み込み、テストを実行した。
[アンカー閉じ] 返信先 3件を引き戻し
[色調整] 同色連続 2件を無色化
テスト結果は期待通りだった。
- 一般レスのピンク連続 ➔ 後ろが「無色」に変更され、強調のノイズが消えた。
- スレッド主(青)の連投 ➔ 青のまま維持。
- 異なる感情色(青とピンク、あるいはピンクと緑など)の並び ➔ 維持。
これにより、記事全体の「色のリズム」が整い、スクロールしたときに重要なツッコミやスレッド主の発言がすっと目に入るようになった。 ちょっとしたお菓子のパッケージでも、ロゴと背景色のコントラストが計算されているのと同じ話だ。システム側で「引き算」を用意しておくのは、AIデザインを破綻させないための必須の安全装置だと言える。
更新履歴
- 2026-06-13: 新規追加。まとめ生成の表示バグ調整ログとして公開。
訂正履歴
- 現時点で訂正はありません。
ZashStudio 技術監修 2026-06-13