そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

EVO-X2でFramePack動かしてみたメモ

先に断っておくと、本当に「動いただけ」の水準なんで悪しからず。

一応生成できたはできた


FramePackは生成AIを用いた動画生成ツールで、画像1枚を元にプロンプトによる指定で例えば写っている人物やキャラクターを動かしたような動画を生成できるものだったりする。

github.com

動画生成というとかなりマシンパワーが要求されそうな気がするけど、これが比較的安価なラインのグラボの少ないVRAMでも動かせるということで界隈では一躍人気になってたんですな。


画像生成系にはあまり食指が動かなかった僕も、「手持ちの画像が動き出す」という体験は面白くてしばらく遊んでいたんだけど、「低スペックで動かせる」とはいえ流石にそこそこ時間がかかるしゲーミングPCを占有させたくはないしなあということでUbuntu入れたEVO-X2で動かせないものかと試行錯誤してみたので、現時点のものをメモしておきたいと思う。

blue1st.hateblo.jp


ファイル構成

例によって個人的にはDockerで運用したいという意向。


Dockerfileは以下の感じ。

FROM ghcr.io/rocm/therock_pytorch_dev_ubuntu_24_04_gfx1151:main

WORKDIR /app
RUN apt update && apt install -y git &&\
        git clone https://github.com/lllyasviel/FramePack.git /app/FramePack

WORKDIR /app/FramePack
RUN pip install numpy --ignore-installed numpy --break-system-packages &&\
        pip install -r requirements.txt  --break-system-packages

RUN git clone https://github.com/git-ai-code/FramePack-eichi /tmp/framepack-eichi &&\
        cp -rf /tmp/framepack-eichi/webui/* /app/FramePack/

CMD ["python3", "endframe_ichi.py", "--server=0.0.0.0", "--port=7860"]

別に最初からeichi版を使いたかったわけじゃないんだけど、大元の方のリポジトリのdemo_gradio.pyの記述だとVRAMを96GB割り当ててるとhigh_vramモードに入ってしまい(>60で実装されてる)、するとどうにもVRAM容量が割り当てられずに起動できない現象にぶつかってしまったんですな。

で、別にそこを手で書き換えても良かったんだけど、eichiの方はそこが>100という実装になってて都合良かったしUIの使い勝手も改良されているのでそっちを追加導入する感じで記述。

github.com


高速化のためのxformers・flash-attn・sage-attentionは試行錯誤して入れてはみたんだけど、エラーでコケるようになっちゃったり単純にまだRyzen AI Max+ 395(gfx1151)に適した実装がリリースされて無さそうだったりで結局現時点では諦め。


compose.ymlは以下の感じ。

f1版もポート違いで起動するようにしてみた。

services:
  eichi:
    restart: always
    build: ./
    ports:
      - 7860:7860
    volumes:
      - ./outputs:/app/FramePack/outputs
      - ./hf_download:/app/FramePack/hf_download
      - ./logs:/app/FramePack/logs
    devices:
      - /dev/kfd:/dev/kfd
      - /dev/dri:/dev/dri
    security_opt:
      - seccomp=unconfined
    cap_add:
      - SYS_PTRACE
  f1:
    restart: always
    build: ./
    command:
      - python3
      - endframe_ichi_f1.py
      - --server=0.0.0.0
      - --port=7861
    ports:
      - 7861:7861
    volumes:
      - ./outputs:/app/FramePack/outputs
      - ./hf_download:/app/FramePack/hf_download
      - ./logs:/app/FramePack/logs
    devices:
      - /dev/kfd:/dev/kfd
      - /dev/dri:/dev/dri
    security_opt:
      - seccomp=unconfined
    cap_add:
      - SYS_PTRACE


あとは普通に起動する感じで。

docker compose up -d

動作について

そんなわけで一応WebUIが立ち上がるところまではいけた。

FramePack-eichiのUI


ただ、生成を回してからも色々厳しくて、なぜかVRAMをモリモリ食べて割当不足に陥ったり特にエラーログも無く落ちたり、そうでなくても手持ちのゲーミングPC(RTX4060Ti・WSL上のUbutnuからDockerで起動)との比較でもやたらと処理が遅かったりで、現状は進んで使おうと思える状況ではなかったですなあ・・・

粘って完走させることはできたし、成果物そのものは見た感じ悪くは無さそうだけども。

元画像


www.youtube.com


まー、あまり深い知識を持ってないなりにも調べていく中で時期尚早なのかなって感じの情報は読み取れたんで、今後の発展に期待といったところだろうか。