現在のユーザーは「AI生成画像」に慣れきっています。評価4.5以上の維持には、単なる高画質化ではなく、「徹底した破綻排除」「差分の論理的整合性」「UX(ユーザー体験)の最適化」の3軸が必須です。1枚の「指崩れ」「背景の歪み」が星1レビューを誘発し、アルゴリズム露出を致命的に低下させます。
長辺3000px以上、アップスケール時の「テクスチャ引き伸ばし感」を完全に除去。
同一シーン内での衣装破れ、装飾、髪型の「フレーム間ブレ」を5%以下に抑制。
体験版と本編のクオリティ乖離ゼロ。誇大広告(サムネイル詐欺)の完全排除。
| 評価項目 | 【不合格】星1〜3レベル | 【合格】星4.0〜4.4レベル | 【極上】星4.5以上維持基準 |
|---|---|---|---|
| 指・手・四肢 | 致命的 指が6本、関節の歪み、不自然な結合。 | 許容 破綻はないが、不自然に隠されている(ポケット、背中)。 | 完璧 爪、関節、対比が解剖学的に正確。複雑な手元の絡みも描写。 |
| キャラクター一貫性 | 破綻 シーンごとに顔、髪色、瞳の形が別人に変化。 | 並 同一人物に見えるが、衣装の細部や装飾がコマごとに消失。 | 完全 LoRA/IP-Adapterを併用し、アクセサリーの位置まで完全固定。 |
| 背景・パース | 破綻 階段の消失、歪んだグリッド、不自然な光源。 | 並 3Dモデルや写真背景の単純な合成、ボケによる誤魔化し。 | 完全 パース線がキャラと完全に一致。ControlNetによる正確な配置。 |
| 差分(枚数・質) | 水増し 表情だけを少し変えただけの10枚(手抜き感)。 | 並 段階的な脱衣、アングル変更。 | 極上 1シーンに15枚以上の段階的変化+「断面図」「汗・涙」の個別制御。 |
| テキスト・UI | 不快 読みにくいフォント、誤字脱字、AI翻訳調。 | 並 標準的なゴシック体、最低限のレイアウト。 | 極上 作品テーマに合わせた専用フォント、適切なフチ取り、セリフ枠。 |
生成時の質感(テカテカ肌の防止)と、ディテール向上を両立させるためのネガティブプロンプトおよび、納品前自動チェック用Pythonスクリプト(画像サイズ・命名規則検証)。
(worst quality, low quality:1.4), (plastic skin:1.3), (shiny skin:1.2), (3d render, cgi:1.2), deformed, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, signature, watermark, username
import os
from PIL import Image
# 2026年品質基準設定
MIN_WIDTH = 2000
MIN_HEIGHT = 3000
ALLOWED_EXTENSIONS = {'.png', '.jpg', '.jpeg'}
def check_assets(directory):
print(f"🔍 品質チェック開始: {directory}")
error_count = 0
for root, dirs, files in os.walk(directory):
# 命名規則チェック(連番になっているか)
files.sort()
for idx, file in enumerate(files):
ext = os.path.splitext(file)[1].lower()
if ext not in ALLOWED_EXTENSIONS:
continue
file_path = os.path.join(root, file)
try:
with Image.open(file_path) as img:
w, h = img.size
# 1. 解像度チェック
if w < MIN_WIDTH or h < MIN_HEIGHT:
print(f"❌ [解像度不足] {file}: {w}x{h} (基準: {MIN_WIDTH}x{h if h > MIN_HEIGHT else MIN_HEIGHT})")
error_count += 1
# 2. 命名規則チェック (例: 001.png, 002.png...)
expected_name = f"{idx+1:03d}{ext}"
if file != expected_name and not file.startswith("sample"):
print(f"⚠️ [命名規則不一致] {file} -> 推奨: {expected_name}")
except Exception as e:
print(f"❌ [破損ファイル] {file}: {str(e)}")
error_count += 1
print(f"\n📊 チェック完了。重大なエラー数: {error_count}")
# 実行用(パスを指定)
# check_assets("./my_cg_work")