Stable DiffusionとComfyUIのPNGパラメータブロック
ローカル生成ツールは完全なプロンプト、サンプラー、シード、モデル名をPNGテキストチャンクに書き込みます。パラメータ、プロンプト、ワークフローブロックを確認すれば、出処は明らかです。
PNGテキストチャンクとは
PNGは画像データの外部に、tEXt(Latin-1)、iTXt(UTF-8)、zTXt(圧縮)タイプのチャンクで任意のキー/値テキストを許可しています。生成ツールはこれを生成設定を記録し、後で画像を再現できるようにするために使用します。
AUTOMATIC1111 / Forge / SD.Next
キーはparameters、値は複数行テキストです:
a cat sitting on a windowsill, masterpiece, best quality
Negative prompt: blurry, lowres
Steps: 28, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 1234567890, Size: 832x1216, Model hash: 31e35c80fc, Model: animagineXL_v31, VAE: sdxl_vae.safetensors, Version: v1.9.4
最初の行はポジティブプロンプト、Negative prompt:で始まる行はネガティブプロンプト、最後の行はカンマ区切りの設定です。Model:はチェックポイント名、Model hash:で正確に検索できます。
JPEGとして保存した場合、同じテキストはEXIF UserCommentに格納されます。
ComfyUI
2つのチャンクを書き込みます:
prompt:class_type(KSampler、CheckpointLoaderSimpleなど)と入力を持つJSONマッピングノードIDからノード定義。workflow:キャンバス全体のJSONで、ComfyUIにドラッグして再現できます。
両方が同時に存在することは、ComfyUIが画像を生成または処理したことをほぼ確実に示します。
NovelAI
CommentチャンクにJSONとして書き込まれます。示唆的なフィールドは"uc"(望ましくないコンテンツ、ネガティブプロンプト)、"steps"、"sampler"です。SoftwareチャンクはNovelAIを示します。
InvokeAI、Fooocus、Draw Thingsなど
それぞれ独自のキーを持ち、通常はinvokeai_metadata、fooocus_scheme、またはparameters内のツール名が含まれます。AuditImageはそれらの名前をキーワードとしてマッチします。
AuditImageの検出方法
parametersがある場合:Stable Diffusion WebUIパラメータとしてフラグ付け。Model:の後にモデル名を抽出。promptとworkflowの両がある場合:ComfyUIワークフローとしてフラグ付け。Commentに"uc":を含む場合:NovelAIとしてフラグ付け。- すべてのチャンクが「PNGテキストチャンク」の下に原文でリストされます。
残存するか
いいえ。JPEGやWebPへの変換を含む任意の再エンコードでPNGテキストチャンクは失われます。ほとんどのソーシャルプラットフォームでも同様です。一部のツールの「エクスポート」でも削除されます。したがって、メタデータがないPNGはAI生成ではないことを意味しません。
手動確認
exiftool -a -G1 -s -PNG:all image.png
# または
python -c "from PIL import Image; print(Image.open('image.png').text)"