メインコンテンツへスキップ
見出し画像

Google Colab で FLUX.1 を試す

    「Google Colab」で「FLUX.1」を試したので、まとめました。

    【注意】Google Colab Pro/Pro+のA100で動作確認しています。

    1. FLUX.1

    「FLUX.1」は、「Stable Diffusion」の開発者たちが立ち上げた「Black Forest Labs」が発表した最新の画像生成AIモデルです。

    ・FLUX.1 [pro] : APIから利用可能な最高品質のモデル。
    ・FLUX.1 [dev] : 非商用アプリ向けのオープンなガイダンス蒸留モデル。
    ・FLUX.1 [schnell] : 最速のタイムステップ蒸留モデル。

    2. FLUX.1 [dev]

    「Google Colab」でのFLUX.1 [dev] (ガイダンス蒸留モデル) の実行手順は、次のとおりです。

    ・ガイダンス蒸留モデルでは、高品質の生成に約50ステップが必要
    ・max_sequence_length に関する制限はない

    (1) パッケージのインストール。

    # パッケージのインストール
    !pip install git+https://github.com/huggingface/diffusers.git

    (2) モデルカードで「Agree and access repository」をクリック。

    画像

    (3) HuggingFaceのログイン。

    !huggingface-cli login

    指示に従って次の情報を入力します。

    ・Enter your token (input will not be visible) : HuggingFaceのトークン
    ・Add token as git credential? (Y/n) : n (認証情報として保存するか)

    (4) パイプラインの準備。
    「black-forest-labs/FLUX.1-dev」をダウンロードします。

    import torch
    from diffusers import  FluxPipeline
    
    # パイプラインの準備
    pipe = FluxPipeline.from_pretrained(
        "black-forest-labs/FLUX.1-dev", 
        torch_dtype=torch.bfloat16
    )
    pipe.enable_model_cpu_offload()

    (5) プロンプトの準備と画像生成の実行。

    # プロンプトの準備
    prompt = "cute cat ear maid of japanese anime style"
    
    # 画像生成の実行
    out = pipe(
        prompt=prompt, 
        guidance_scale=3.5, 
        width=1024, 
        height=1024, 
        num_inference_steps=50,
        max_sequence_length=256,
    ).images[0]
    out.save("image.png")
    画像

    50ステップで56秒かかりました。消費メモリは次の通り。

    画像

    3. FLUX.1 [schnell]

    「Google Colab」でのFLUX.1 [schnell] (タイムステップ蒸留モデル) の実行手順は、次のとおりです。

    ・max_sequence_length は 256 を超えることはできない
    ・guidance_scale は 0 である必要がある
    ・タイムステップ蒸留モデルであるため、ステップが少ないほど有利

    (1) パッケージのインストール。

    # パッケージのインストール
    !pip install git+https://github.com/huggingface/diffusers.git

    (2) パイプラインの準備。
    「black-forest-labs/FLUX.1-schnell」をダウンロードします。

    import torch
    from diffusers import  FluxPipeline
    
    # パイプラインの準備
    pipe = FluxPipeline.from_pretrained(
        "black-forest-labs/FLUX.1-schnell", 
        torch_dtype=torch.bfloat16
    )
    pipe.enable_model_cpu_offload()

    (3) プロンプトの準備と画像生成の実行。

    # プロンプトの準備
    prompt = "cute cat ear maid of japanese anime style"
    
    # 画像生成の実行
    out = pipe(
        prompt=prompt, 
        guidance_scale=0., 
        width=1024, 
        height=1024, 
        num_inference_steps=4, 
        max_sequence_length=256,
    ).images[0]
    out.save("image.png")
    画像

    4ステップで34秒かかりました。消費メモリは次の通り。

    画像

    4. Comfy UI

    「Comfy UI」で「FLUX.1」の使い方は、以下の記事が参考になりました。

    【注意】Macでノイジー画像しかでない不具合の解決策はこちら。
    「Stability Matrix」での対応コマンドの例は次のとおりです。

    cd "/Users/<ユーザー名>/Library/Application Support/StabilityMatrix/Packages/ComfyUI"
    source venv/bin/activate
    pip install torch==2.3.1 torchaudio==2.3.1 torchvision==0.18.1

    次回



     
     

    npaka

     
     
    プログラマー。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガジェット。年2冊ペースで技術書を執筆。アニソン / カラオケ / ギター / 猫 twitter : @npaka123

    あなたへのおすすめ