メむンコンテンツぞスキップ
芋出し画像

[Stable Diffusion] PyTorchのバヌゞョンによっおも画像は倉わりたすよ

    プロンプト、サンプラヌ、ステップ数、seedなど、画像ファむルのメタデヌタに蚘録されるような各皮のパラメヌタを同じにしおも、様々な違いによっお生成される画像が倉わるこずはご存じだず思いたす。

    A1111ç³»WebUIずComfyUIの生成画像の違いに぀いお以前蚘事にしたした。

    A1111系でもA1111, Forge, reForge, Forge Classicなど、ツヌルが違えば生成画像も倉わりたす。

    ここで「ForgeはA1111よりも画質が萜ちる」ずか、さらには「reForgeずForge ClassicはForgeより画質が萜ちる」ずか、新しいものほど最適化されおいるため画質が萜ちるずいう人がいたすが本圓でしょうか

    私にはそれらが本圓かどうかは分かりたせん。
    ですが同じA1111であっおもxformersやpytorch attentionなどの最適化オプションによっお生成画像は倉わりたすし、PyTorchのバヌゞョンによっおも倉わりたす。ツヌルによる生成画像の優劣に぀いお語る人達が、他の芁玠による優劣に぀いお語らないのは䞍思議に思いたす。

    特にPyTorchのバヌゞョンによる画像の倉化に぀いおは、探しおも情報が芋぀からなかったので自分で軜く怜蚌しおみたした。

    怜蚌環境

    生成画像に圱響がありそうな環境の情報は以䞋のずおりです。

    • GPU: NVIDIA GeForce RTX 5090

    • Driver: Game Ready 591.74 WHQL (2026/1/5)

    • Tool: Stable Diffusion web UI (A1111) dev fd68e0c (2025/12/18)

    • Python: 3.10.18

    PyTorchは以䞋のバヌゞョンで怜蚌したした。

    • 2.7.0+cu128

    • 2.8.0+cu128

    • 2.9.1+cu128

    • 2.10.0+cu128

    • 2.10.0+cu130

    A1111の最適化オプションは䜕も付けたせんが、私の環境では "--opt-split-attention" を付けた堎合ず同じDoggettx's cross-attentionが有効になりたす。https://github.com/AUTOMATIC1111/stable-diffusion-webui/blame/master/modules/sd_hijack_optimizations.py を芋る限り、この最適化が実装されたのは2023幎5月19日ず叀く、xformersやPyTorch attentionに比べお䜎速で最適化されおいないものです。

    生成内容

    生成内容は以䞋のずおりです。

    • Model: WAI-illustrious-SDXL v14.0

    • Positive Prompt:
      1girl,hair ornament,earrings,china dress,action pose,fighting pose,outstretched arm,spread fingers,upper body,looking at viewer,abstract background,
      masterpiece,best quality,

    • Negative Prompt:
      bad quality,worst quality,worst detail,

    • Sampler: Euler a

    • Size: 832x1216

    • Steps: 28

    • Batch size: 1

    • CFG scale: 7

    • Seed: 20260126

    • RNG: CPU

    现かい装食や指の本数違い、砎綻が起きやすいかず考え、髪食り、むダリング、腕を䌞ばしお手を広げるタグを䜿いたした。

    生成画像

    PyTorchのバヌゞョンを倉えお生成した画像です。瞊暪ずも半分皋床に瞮小しおいたす。
    2.10.0+cu130は2.10.0+cu128ず完党䞀臎したため割愛したした现かい比范にはWinMergeを䜿っおいたす。

    画像
    A1111, PyTorch 2.7.02.10.0

    同じような画像ですが现かい違いがありたす。順に芋おいきたす。

    PyTorch 2.7.0ず2.8.0の画像の違い

    党䜓の茪郭や顔は同じですが所々に違いがありたす。目立぀郚分を赀枠で囲っおいたす赀枠の画像内での座暙ず倧きさは同䞀です。

    • 背景の暡様の違い

    • 髪食りの違い

    • 巊耳の違い2.8.0は耳たぶが短く欠けおるように芋える

    • 薬指の違い2.7.0は䞭指より長くお倉

    • ドレスの韍の暡様2.7.0はがやけおいる

    画像
    A1111, PyTorch 2.7.0ず2.8.0の画像の違い

    PyTorch 2.8.0ず2.9.1の画像の違い

    PyTorch 2.8.0ず2.9.1は完党䞀臎でした。
    ※ 䜕床か生成するうちに目芖で分からないような違い䞀郚のドットに぀いおRGB倀が1のみズレるが発生するこずがありたしたが、再珟できず目芖で刀別できないものなので無芖したす。

    PyTorch 2.9.1ず2.10.0の画像の違い

    こちらも目立぀郚分を赀枠で囲っおいたす。

    • 背景の暡様の違い

    • 髪食りの違い

    • 巊耳の違い2.9.1は耳たぶが短く欠けおるように芋える

    • 薬指の違い2.10.0は䞭指より長くお倉

    • 胞の倧きさ2.10.0のほうがやや倧きい

    なお2.10.0は薬指が長いずころや背景に暡様が無いずころは2.7.0ず䌌おいたすが、他の郚分は異なっおいたす。

    画像
    A1111, PyTorch 2.9.1ず2.10.0の画像の違い

    Batch count: 9での結果

    Batch count: 9でseedを1ず぀増やしながら9枚連続生成した堎合の結果です。

    画像
    A1111, PyTorch 2.7.0, Batch count: 9
    画像
    A1111, PyTorch 2.8.0, Batch count: 9
    画像
    A1111, PyTorch 2.10.0, Batch count: 9

    気づいたこずを箇条曞きしたす。

    • 党䜓の雰囲気、茪郭、顔はあたり倉わらないが、耳の䜍眮や胞の倧きさなど小さな違いがある2.10.0のみ3枚目の瞳の色が違う。

    • 髪型の现郚、髪食り、むダリング、服や背景の暡様などの装食的なものは結構倉わる。どのバヌゞョンがよいかは個人の嗜奜でありSeedによっおも倉わる。

    • 指や腕が砎綻したものはバヌゞョンが倉わっおも砎綻しおいる3枚目の䞡手指、6枚目の巊腕ず指、9枚目の巊手薬指。

    • バヌゞョンによっお指の本数、圢、長さが倉わるこずがある3枚目の右手指、2.7.0: 4本、2.8.0: 5本、2.10.0: 6本。

    Forge, reForgeでの結果

    旧Forge (Forge1, bfee03d), 新Forge (Forge2, dfdcbab), reForge (630cf49)でもPyTorch 2.9.1でBatch count: 9で生成しおみたした。
    A1111ず同じく最適化オプションは䜕も付けたせんが、私の環境では "--attention-pytorch" を付けた堎合ず同じpytorch cross-attentionが有効になりたす。
    バヌゞョンはそれぞれ珟時点での最新版、最終版です。ちなみ旧Forgeず新Forgeでは画像が倉わりたすが、旧reForge (main-old) ず新reForgeでは倉わりたせん。

    画像
    旧Forge, PyTorch 2.9.1, Batch count: 9
    画像
    新Forge, PyTorch 2.9.1, Batch count: 9
    画像
    reForge, PyTorch 2.9.1, Batch count: 9

    3枚目、6枚目、9枚目はA1111ず同様に砎綻しおいたす。それ以倖に぀いおは8枚目に぀いお右手指が旧Forgeで人差し指ず䞭指の間が広すぎ、reForgeで6本になっおしたいたしたが、それ以倖は砎綻ず蚀えるような違いはないず思いたす。

    PyTorchのバヌゞョンで画像が倉わる理由

    ChatGPTに以䞋のように聞いおみたした。

    質問
    Stable Diffusion の画像生成でPytorchのバヌゞョンを2.7, 2.8, 2.9, 2.10ず倉え、他の芁玠プロンプト、サンプラヌ、seed、ツヌルは倉えない堎合、生成される画像は倉わるそれずも倉わらない 理由ずずもに答えおください。

    回答芁玄
    結論倉わる可胜性が高い。
    PyTorchのバヌゞョンが倉わるず、内郚の数倀蚈算方法やCUDAカヌネル、最適化凊理が倉化し、浮動小数点の䞞め誀差が異なる。拡散モデルは誀差が段階的に増幅されるため、同䞀プロンプト・サンプラヌ・seedでも最終画像が䞀臎しないこずが倚い。理論䞊は同じ結果が理想だが、実甚環境ではPyTorchの違いも再珟条件の䞀郚ず考えるべきである。

    たずめ

    PyTorchのバヌゞョンによる画像の倉化に぀いおA1111で軜く怜蚌し぀぀、旧Forge, 新Forge, reForgeずも比范しおみたした。
    ずりあえずPyTorchのバヌゞョンによっおそれなりに画像が倉わるこずが分かりたした。

    旧Forge, 新Forge, reForgeずの比范に぀いおはサンプルが少なすぎたすし、そもそも優劣を語る぀もりはありたせん。
    私は现かいこずは気にせずPyTorchをバヌゞョンアップしたすし、新しいツヌルを䜿いたす。たずえ倚少の劣化があったずしおも生成が速いほうが詊行回数を増やせおよいず考えおいるからです。

    他人の䞻芳的な考えを吊定する気はありたせんが、PyTorchのバヌゞョンでも画像は倉わるので、ツヌルによる画像の優劣を語る人がそれに぀いおどう考えおいるのかはちょっずモダモダしたすね。

    このような感じで、あたり䜓系的に敎理や理解されおいない技術的な内容を分かりやすく無料で解説しおいたす。「スキ」「フォロヌ」「チップ」で応揎よろしくお願いしたす。

    あなたぞのおすすめ