サムネイル自動生成の追試|ERNIE-Image-Turbo を RTX 4070 + ComfyUI で試す

AIテキスト

1月に Windows + RTX 4070 で組み、3月には MacBook Air + diffusers に一本化したサムネイル自動生成パイプライン。 今回は Baidu が 2026-04-15 に公開した ERNIE-Image を試すため、一時的に RTX 4070 側へ戻って ComfyUI で実測しました。

なぜ ERNIE-Image を試したいか

3月の diffusers 移行で採用した RealVisXL V5.0 は背景画像としては十分で、pareido.jp の現行ラインを問題なく回せています。ただし「日本語テキストをきれいに描画できない」という SDXL 共通の制約も引き継いだままで、タイトル入りポスターやマンガ風サムネは Pillow で後から文字を載せる前提になっていました。

ERNIE-Image はこの点を明確に売りにしています。

  • DiT ベース 8B パラメータ、Apache-2.0
  • 日本語を含む多言語テキスト描画に強い
  • ComfyUI は day-0 対応、公式テンプレートあり
  • Turbo 版は 8 ステップで生成完了

素の ERNIE-Image は 24GB VRAM 推奨(RTX 5090 級)ですが、蒸留された Turbo 版であれば RTX 4070 の 12GB にも乗ることが実測でわかりました。

検証環境

項目
GPURTX 4070 (VRAM 12GB)
OS / PythonWindows 11 / Python 3.10.11
ComfyUI0.19.3(StabilityMatrix 経由)
PyTorch2.11.0+cu130
モデルernie-image-turbo.safetensors (bf16)

モデル一式の配置は ComfyUI 側で下記の 4 ファイル。

ComfyUI/models/
├── diffusion_models/ernie-image-turbo.safetensors
├── text_encoders/ministral-3-3b.safetensors
├── text_encoders/ernie-image-prompt-enhancer.safetensors
└── vae/flux2-vae.safetensors

ワークフローは Comfy-Org/ERNIE-Image の公式テンプレートをそのまま使用しました。標準の SD 系と違って、プロンプト文字列は PrimitiveStringMultiline に書き込み、CLIPTextEncode へはスイッチ経由で渡る形です。プロンプト強化 (PE) をトグルすると ministral-3-3b が原文を拡張したテキストに差し替えてくれる仕組みになっています。

実行スクリプト

ComfyUI のAPIを直接叩けるよう、シンプルな Python ランナーを書きました。

# (抜粋)

resp = requests.post(
    f"http://{server}/prompt",
    json={"prompt": patched_workflow, "client_id": client_id},
)
prompt_id = resp.json()["prompt_id"]

ws = websocket.WebSocket()
ws.connect(f"ws://{server}/ws?clientId={client_id}")
while True:
    msg = json.loads(ws.recv())
    if msg.get("type") == "executing":
        data = msg.get("data") or {}
        if data.get("prompt_id") == prompt_id and data.get("node") is None:
            break  # 完了

hist = requests.get(f"http://{server}/history/{prompt_id}").json()

patch_workflow() 側では、公式テンプレートが持つ以下のノードに対して引数を差し込みます。

  • PrimitiveStringMultiline(タイトルに “Prompt”) → プロンプト文字列
  • EmptyFlux2LatentImage → width / height
  • KSampler → seed / steps / cfg
  • PrimitiveBoolean(”prompt enhancement”) → PE の ON/OFF
  • PreviewAny(source=1024 固定のもの)→ プロンプトテンプレ内の {width}/{height} と同期

テンプレート側は source: 1024 が文字列化されて PE 用システムプロンプトに埋め込まれるため、解像度を変えるときはここも合わせておかないと PE が「1024×1024 で生成してほしい」という指示で走ることになります。

実測結果

6 種のプロンプトで生成。解像度 1264×848(Flux 2 系の推奨比率、3:2 に近い)、steps=8、cfg=1.0、sampler=euler、scheduler=simple。

ID概要PE所要時間VRAM 使用
01開発者ワークスペース(英語)on49.6 s8487 MB
02日本語タイトル入りワークスペースon47.5 s8615 MB
03抽象ニューラル(中央空けレイアウト)on46.9 s8649 MB
04マンガ調 + 日本語セリフ「実測!」on53.2 s8617 MB
05アイソメトリックのデータセンターon50.9 s8649 MB
0680s ポスター + 日英混在テキストon45.9 s8425 MB
02b02 と同文(PE OFF)off26.2 s8745 MB
06b06 と同文(PE OFF)off25.0 s8619 MB
  • PE ON で 46〜53 秒、OFF で 25〜26 秒。PE が所要時間の半分近くを占める
  • VRAM は常時 8.4〜8.7GB。RTX 4070 の 12GB で破綻なし
  • fp16 NaN のようなトラブルも出なかった

日本語テキスト描画

一番気になっていた 02(日本語タイトル)と 06(日英混在ポスター)は、PE ON でも OFF でも日本語が崩れず描画されました。

PE ON の方は ministral-3-3b が構図・照明・追加装飾を広げてくれるので華やかになりますが、指示に無いテキストも足されます(02 は “Image Generation Tool” が追加される、06 は “Real-time generation / 1024px resolution / Multilingual support” のような箇条書きが自動追加)。

一方 PE OFF は原文忠実で、時間も半分。サムネイル用途のようにプロンプトを厳密にコントロールしたい場合は PE OFF の方が扱いやすいという実感です。

既存パイプラインへの差し込み

1月の構成から変わっていない Pillow レイヤーは、背景画像の生成元を差し替えるだけで完全に流用できました。

# 1) ERNIE で中央空けの背景を生成
python run_thumbnail.py \
  --workflow workflows/ernie_turbo_api.json \
  --prompt "abstract digital artwork, glowing neural network nodes ..." \
  --width 1264 --height 848 --steps 8 --cfg 1.0 --seed 42 \
  --output outputs/

# 2) Pillow で 1200x630 にクロップ + オーバーレイ + タイトル
python compose_thumbnail.py \
  --bg outputs/<生成画像>.png \
  --title $'ERNIE-Image-Turbo\nRTX 4070 実測' \
  --keywords "ERNIE-Image" "ComfyUI" "RTX 4070" \
  --output assets/thumbnail_2026_04_19.png

この 2 ステップで、この記事のサムネイル (1200×630) も自動生成しています。

考察

  • 日本語タイトル入りサムネが自動化できるのは大きい。これまで Pillow 側で後処理していた部分を、モデル生成の段階から扱える選択肢が増えた
  • 時間コストは Turbo + PE OFF で 25 秒/枚。RealVisXL + diffusers on MPS の 1 分/枚(3 月記事)より速い。ただし RTX 4070 常駐が前提になる
  • メモリは Turbo なら 12GB に余裕で収まる。フル版 (8B SFT, 50 ステップ) は 24GB 級が必要で RTX 4070 単体では厳しい
  • ComfyUI の公式テンプレートが PE 前提で組まれている点は注意。Python から叩くなら PrimitiveBoolean のトグルを露出させておくと柔軟

ERNIE (DiT 系) はテキスト描画力は高いものの、Stable Diffusion の regional prompting のような空間制御は素の状態だとまだ難しそうです。この例に限れば問題なく使えますが、テキスト内容は ERNIE、レイアウト幾何は Pillow、という役割分担が今のところ現実的です。

PILLOWありのもの。
PILLOWなしでプロンプト指示のみ。問題はないものの、角丸四角になったり、背景への影響が出る。

まとめ

  • ERNIE-Image-Turbo は RTX 4070 (12GB) + ComfyUI で普通に動く。所要時間は 25〜50 秒、VRAM は 8.5GB 前後
  • 日本語テキスト描画が売りの通り強く、pareido.jp の「日本語タイトル入り」用途に刺さる
  • プロンプト強化 (PE) は OFF の方が時間も忠実度も有利。必要に応じて切る設計が良い
  • 既存の Pillow 合成パイプラインを変えずに、背景生成元だけ差し替える運用が可能
タイトルとURLをコピーしました