DLsite / Booth / FANZA / ブログを横断。生成画像をサムネに使う際の「クリックされる→買われる」までを、規格・心理学・AI規約・自動化コードで完全網羅。CC1(画像生成)・CC2(コンテンツ運用)共通リファレンス。
| 優先 | アクション | 工数 | 効果 |
|---|---|---|---|
| P0 | PF別フレームを分けて出力(FANZA 560×420 / Booth 1:1 / OGP 1200×630)。1枚使い回しは全PFで最適化を捨てている | 低 | 表示崩れ・余白損失の解消 |
| P0 | 主役の顔を左上、コピーを右下(Zの法則)+補色高コントラスト背景。顕著性で「指が止まる」[8] | 低 | CTR最大の伸びしろ |
| P1 | コピーは7文字以内+具体数字(「全80P」「期間限定30%」)。文字は足すより引く[8][14] | 低 | 即時理解→CTR |
| P1 | AI生成タグ・C2PA表記を正しく(DLsite AI生成フロア / FANZA AI区分申告)。誤申告はBAN[5][6][7] | 低 | 出品停止リスク回避 |
| P2 | PIL/ffmpegで帯・GIFを自動付与しA/Bを週1で回す(1変数ずつ)[17][18][19] | 中 | 継続的CTR最適化 |
サムネ最適化の価値は「絶対市場規模」ではなく「同じ流入に対する取りこぼし回収率」で測る。表示はアルゴリズムが運ぶが、クリックするかは100%サムネ依存。クリックされなければサンプル画像も説明文も読まれず、CVRはゼロ。つまりサムネは全コンバージョンの上流ゲート。
| 媒体 | サムネ改善の実証インパクト | 出典 |
|---|---|---|
| YouTube | 10字→7字短縮でCTR 4.3%→8.9%(約2倍) | [8] |
| 楽天 | 商品画像改善でアクセス +15% | [16] |
| EC一般 | 暗背景×白文字・補色配色でCTR安定上昇 | [15] |
DLsite/FANZA上位・楽天売れ筋・YouTube高CTRサムネを横断分解すると、媒体を問わず共通する10要素が抽出できる。自作サムネをこの10項目で採点し、6個以上を満たすことを最低ラインにする。
| # | 共通要素 | 具体 | 根拠 |
|---|---|---|---|
| 1 | 主役1人にフォーカス | 群像より顔1つ。視線がさまよわない | [8] |
| 2 | 感情の出た表情 | 無表情NG。恥じらい/驚き/笑顔で共感反応 | [8] |
| 3 | 補色・高コントラスト | ピンク×シアン、オレンジ×紺など | [8][15] |
| 4 | 視線がカメラ目線 | こちらを見る目線がクリックを誘発 | [8] |
| 5 | コピー7文字以内 | 長文は縮小で潰れて読めない | [8] |
| 6 | 具体数字 | 「全120P」「初回50%」で信頼と量感 | [9] |
| 7 | ジャンル即判別 | 3秒で「何の作品か」分かる | [12] |
| 8 | 余白で主役を立てる | 詰め込みすぎない。文字面積≦20% | [16] |
| 9 | 縁取り・ドロップシャドウ | 背景に負けない可読性確保 | [17] |
| 10 | シリーズで統一感 | 同じ枠/フォントでブランド認知 | [1] |
| PF | メイン/表紙 | サムネ | サンプル | 比率/注意 |
|---|---|---|---|---|
| DLsite | 560×420px(jpeg/png・透過不可) | 300×300 / 100×100 | 長辺2000px以内・1枚2MB・最大10枚 | 4:3。規定より大は縮小・小はそのまま[1][4] |
| FANZA同人 | 560×420px(パッケージ) | 300×300 / 100×100 | 長辺2000px以内・1枚2MB・最大10枚 | DLsiteと同規格。過度な性的表現はメインNG[2][3] |
| Booth | 1枚目が表紙 | 検索/一覧は強制1:1正方形トリミング | 複数枚推奨(4〜5枚以上) | 1000×1000〜1280×1280px推奨。横長なら中央正方形に主役[11][12] |
| ブログ/OGP | 1200×630px(1.91:1) | Discoverは1200px以上 | — | WebP推奨。X/FB/LINEシェア共通サイズ[13] |
視線は左上→右上→左下→右下のZ字に流れる。主役の顔を左上、コピー/価格を右下に置くと自然に読み切られる。スマホ縦並びではFの法則も併用。根拠: Nielsen Norman Group 視線追跡研究[8]
ピンク×シアン、オレンジ×紺など補色ペアで視覚的緊張を作りスクロールを止める。暗背景×白文字は縮小でも映える。根拠: Treisman 特徴統合理論/WCAG AAコントラスト比4.5:1[8][15]
7文字以内がワーキングメモリの限界。楽天は文字面積20%上限がガイドライン化(21%以上はペナルティ)。足すより引く。根拠: Miller マジックナンバー7±2/楽天ガイドライン[8][16]
人は他者の表情を見た瞬間に共感反応を起こす。恥じらい・驚き・笑顔+カメラ目線がクリック意欲を直接押す。無表情・後ろ姿は弱い。根拠: Rizzolatti ミラーニューロン研究[8]
| 型 | 公式 | 同人/AI画像での例 |
|---|---|---|
| ① 数量訴求 | 「全○○枚/P」 | 全250枚・差分込 |
| ② 限定/緊急 | 「○日間限定/初回○%」 | 7日間半額・先着100名 |
| ③ ターゲット呼びかけ | 「○○好きへ/○○に悩む人へ」 | 巨乳好き必見 |
| ④ ベネフィット | 「○○できる/○○が手に入る」 | 抜ける高画質フルカラー |
| ⑤ 権威/実績 | 「ランキング○位/累計○DL」 | 新着デイリー1位 |
※ 型は「ターゲット」「数字」「限定」が何にでも乗る土台。すべて購入後のプラスのイメージを想起させる具体語で。[9]
| 色 | 心理効果 | サムネでの使いどころ |
|---|---|---|
| 赤/ピンク | 興奮・情熱・緊急 | R18/セール帯/重要コピー |
| 黄/金 | 注目・お得・高揚 | 「限定」「%OFF」バッジ |
| 青/シアン | 清潔・信頼・冷静 | 背景の補色・全年齢系 |
| 緑 | 安心・自然 | 癒し系/日常ジャンル |
| 白/黒 | 高級・可読性 | 文字色・縁取り(暗背景に白) |
| 項目 | 改善前 | 改善後(楽観) | 改善後(保守) |
|---|---|---|---|
| サムネCTR | 2.0% | 4.0% | 3.5% |
| クリック数 | 200 | 400 | 350 |
| CVR | 15% | 15%(維持) | 11%(低下) |
| 購入数 | 30 | 60 | 38.5 |
| 売上(770円) | 23,100 | 46,200 | 29,645 |
| 粗利(手数料20%後) | 18,480 | 36,960 | 23,716 |
| 月間改善効果 | — | +18,480 | +5,236 |
C2PA(Content Credentials)は画像の来歴を改ざん検知可能な形で埋める標準で、2026年に ISO/IEC 22144 化。DALL·E/Sora・Adobe Firefly・Google Imagenは生成画像にC2PAを埋め、GoogleのAbout this image・Meta(Instagram/Facebook)は「AI生成」ラベルを自動表示する。[20]
| 週 | やること | 成果物 |
|---|---|---|
| Week1 調査 | 自ジャンル人気順TOP30をスクショ→10要素採点表化。自作との差分抽出。PF別規格を確認 | 競合分析シート・差分リスト |
| Week2 基盤 | PILでマスター→PF別リサイズ+帯付与スクリプト構築。コピー5型でA/B用コピー10本作成 | 自動生成スクリプト・コピー案 |
| Week3 テスト | 1変数ずつA/B(コピー→色→構図の順)。週1で差し替え、クリック/CVRを記録 | A/Bログ・勝ちパターン |
| Week4 横展開 | 勝ちサムネ型を全作品・全PFへ展開。GIF動くサムネをSNS集客に投入 | 統一テンプレ・SNS用GIF |
| KPI | 健全 | 要改善 | 撤退/作り直し |
|---|---|---|---|
| サムネCTR | 3%以上 | 1.5〜3% | 1.5%未満(サムネ全面刷新) |
| クリック後CVR | 10%以上 | 5〜10% | 5%未満(サムネ誇大か中身か切分) |
| A/B改善幅 | 毎週+する | 横ばい | 3週連続改善なし(ジャンル/構図ごと見直し) |
| レビュー★ | 4.0以上 | 3.5〜4.0 | 3.5未満(サムネと中身ギャップ疑い) |
| # | 失敗 | 対策 |
|---|---|---|
| 1 | 1枚を全PFに使い回し→見切れ/余白 | マスター→PF別自動リサイズ(第10章) |
| 2 | 指崩れ・破綻がサムネに露出 | 最高品質1枚選定+帯/トリミングで隠す |
| 3 | コピーが長文で縮小時に読めない | 7文字以内・縁取り必須 |
| 4 | 低コントラストで埋もれる | 補色+暗背景×白文字 |
| 5 | 群像で視線が分散 | 主役1人+大きく |
| 6 | 無表情・後ろ姿でクリック弱 | 感情表情+カメラ目線 |
| 7 | 楽天で文字面積21%超→ペナルティ | 文字面積20%以下を厳守[16] |
| 8 | FANZAメインに過激表現→審査落ち | メインは引き・サンプルで攻める[3] |
| 9 | AI区分の誤申告/無申告→BAN | 3区分を正直に申告[6] |
| 10 | サムネ誇大で中身ギャップ→低評価 | サムネと中身の品質を揃える |
ComfyUI出力(正方形 or 大きめ)を1枚渡すと、DLsite/FANZA(560×420)・Booth(1:1)・OGP(1200×630)を一括生成し、下部に半透明グラデ帯+縁取りコピーを載せる。[17]
# pip install Pillow
from PIL import Image, ImageDraw, ImageFont, ImageFilter
# === PF別ターゲット規格 ===
PF_SPECS = {
"dlsite_main": (560, 420), # DLsite/FANZA メイン
"booth": (1000, 1000), # Booth 正方形
"ogp": (1200, 630), # ブログ/OGP/SNS
"thumb": (300, 300), # DLsite小サムネ
}
def fit_cover(img, tw, th):
"""中央クロップで比率を合わせる(主役は中央安全圏前提)"""
w, h = img.size
scale = max(tw / w, th / h)
nw, nh = int(w * scale), int(h * scale)
img = img.resize((nw, nh), Image.LANCZOS)
left, top = (nw - tw) // 2, (nh - th) // 2
return img.crop((left, top, left + tw, top + th))
def gradient_band(w, h, color=(0, 0, 0), max_a=200):
"""下→上に透明になる帯(可読性確保)"""
band = Image.new("RGBA", (w, h), (0, 0, 0, 0))
for y in range(h):
a = int(max_a * (y / h)) # 下ほど濃い
for_row = Image.new("RGBA", (w, 1), color + (a,))
band.paste(for_row, (0, h - 1 - y))
return band
def outlined_text(draw, xy, text, font, fill=(255,255,255),
outline=(0,0,0), ow=3):
"""縁取り文字(背景に負けない)"""
x, y = xy
for dx in range(-ow, ow+1):
for dy in range(-ow, ow+1):
if dx or dy:
draw.text((x+dx, y+dy), text, font=font, fill=outline)
draw.text((x, y), text, font=font, fill=fill)
def make_thumb(src_path, out_dir, copy_text, accent=(255,64,129)):
base = Image.open(src_path).convert("RGBA")
fontpath = "C:/Windows/Fonts/meiryob.ttc" # 太字推奨
for name, (tw, th) in PF_SPECS.items():
canvas = fit_cover(base.copy(), tw, th)
# 下部 35% にグラデ帯
bh = int(th * 0.35)
band = gradient_band(tw, bh)
canvas.alpha_composite(band, (0, th - bh))
# コピー(7文字以内推奨)を帯上に縁取りで
if copy_text:
draw = ImageDraw.Draw(canvas)
fsize = max(18, th // 9)
font = ImageFont.truetype(fontpath, fsize)
bbox = draw.textbbox((0,0), copy_text, font=font)
tw_txt = bbox[2]-bbox[0]
tx = (tw - tw_txt)//2
ty = th - bh + (bh - (bbox[3]-bbox[1]))//2 - 4
outlined_text(draw, (tx, ty), copy_text, font,
fill=(255,255,255), outline=accent, ow=3)
canvas.convert("RGB").save(f"{out_dir}/{name}.jpg",
quality=92, optimize=True)
print(f"saved {name}: {tw}x{th}")
# 使用例
make_thumb("master.png", "./out", "全120P・初回50%OFF")
連番差分(瞬き/揺れ/カットイン)や2〜3枚のクロスフェードを、palettegenで256色最適化した高品質GIFに。X/Pixiv/Boothのサムネ動画化に。[18][19]
# 連番 frame_0001.png ... を 10fps の高品質GIFに
ffmpeg -framerate 10 -i frame_%04d.png \
-filter_complex "[0:v] fps=10,scale=560:-1:flags=lanczos,split [a][b];\
[a] palettegen=stats_mode=diff [p];\
[b][p] paletteuse=dither=floyd_steinberg" \
out.gif
# 静止画1枚を「ゆっくりズーム」する動くサムネ(MP4・SNS向け)
ffmpeg -loop 1 -i thumb.png -t 4 \
-vf "scale=1200:-1,zoompan=z='min(zoom+0.0015,1.15)':d=120:s=1200x630,fps=30" \
-c:v libx264 -pix_fmt yuv420p -movflags +faststart promo.mp4
# 2枚クロスフェード(before/afterや差分見せ)
ffmpeg -loop 1 -t 2 -i a.png -loop 1 -t 2 -i b.png \
-filter_complex "[0][1]xfade=transition=fade:duration=1:offset=1,fps=15,\
scale=560:-1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" cross.gif
D:\projects\fanza3_mass\scripts)の出力をこのPILスクリプトのバッチ入力にすればサムネ生成まで全自動。DR_thumbnail_optimization_r18_2026-06-07.html(R18素材集サムネ特化)・DR_エロ漫画表紙サムネ設計完全ガイド_2026-06-08.html(漫画表紙特化)と重複しない差別化軸=4PF横断・C2PA/AI規約・PIL/ffmpeg自動化コードを担当。基礎的なCTR要素・体位別構成は下記を参照。| 関連DR | 役割分担 |
|---|---|
| DR_thumbnail_optimization_r18_2026-06-07 | R18素材集サムネ・GIMP手順・体位別構成(本DRと相互補完) |
| DR_エロ漫画表紙サムネ設計完全ガイド_2026-06-08 | 漫画表紙のCTR3倍5法則・キャッチコピー公式 |
| DR_エロ同人価格設定の科学_2026-06-08 | 770円帯の根拠・価格×収益試算 |
| DR_クリックして買いたくなる仕掛けCRO完全攻略_2026-06-08 | 行動経済学トリガー・CTA・景表法線引き |
| DR_AI画像同人著作権2026最新解釈_2026-04-28 | AI規約・著作権の法務基盤 |
| DR_Pinterest_アフィリ画像戦略_2026-06-08 | AI画像のC2PAラベル・SNS拡散 |