*当サイトのリンクにはAmazonアソシエイトやアフィリエイトリンクが含まれております。

stable-diffusion.cpp と llama.cpp を組み合わせて、ローカルAIで画像生成から動画生成まで。

前回、NanoClaw + llama.cpp + stable-diffusion.cpp で画像生成できるローカルAI エージェント駆動という長ったらしいタイルの記事でエージェント駆動での動画生成をやりましたが、今回は画像生成と動画生成にフューチャーした感じの構築を行いました。
久々に少しだけコードも載せますよ。

広告

ComfyUIよりもラクチン。プロント生成もAIに丸投げ

以前、ACE-Stepを使ってみた時にComfyUIを導入して色々と試しましたが、私はやはりプログラミングのほうが好き。
カスタムノードってのが、どうにも見難いのです。

そんな事もあり、気軽に開く事は無かったのですが、stable-diffusion.cpp と llama.cpp を組み合わせれば凄く楽に、重いモデルも使えるじゃん!!とやってみたワケです。

実際の動作

まず動作知りたい人もいらっしゃると思いますので、実動作。

stable-diffusion.cpp側の構成

stable-diffusion.cppのサーバー起動でAPIに投げる事も出来るのですが、CLIで生成したほうが即座にVARMがあくのでshファイルを作って、llama.cppのtoolでシェルを叩かせます。
shファイルを作る理由は引数を渡せるから。
あとはデフォルト値の設定しておけば、そこまで賢くないAIモデルでも実行出来る。

generate_image

まずは画像生成用。
核となる部分の一部のみしか書きませんよので、コピペでは動きません・・・


#ここがCLIでの生成コマンド部分
nohup $SERVER_BIN \
    --diffusion-model "$DIFFUSION_MODEL" \
    --vae "$VAE_MODEL" \
    --llm "$LLM_MODEL" \
    -p "$PROMPT" \
    -n "$NEGATIVE" \
    --cfg-scale "$CFG" \
    --vae-tiling \
    --offload-to-cpu \
    --diffusion-fa \
    -H "$HEIGHT" \
    -W "$WIDTH" \
    --steps "$STEPS" \
    -o "$OUTPUT" \
    "${EXTRA_ARGS[@]}" >"$LOG" 2>&1 &

generate_video

動画用は分けています。
一緒にしても良いのですが、引数が増えるので分けています。


#ここがCLIでの生成コマンド部分
nohup $SERVER_BIN -M vid_gen \
    --diffusion-model "$DIFFUSION_MODEL" \
    --vae "$VAE_MODEL" \
    --audio-vae "$AUDIO_VAE_MODEL" \
    --llm "$LLM_MODEL" \
    --embeddings-connectors "$EMBEDDINGS_CONNECTORS" \
    -p "$PROMPT" \
    -n "$NEGATIVE" \
    --cfg-scale "$CFG" \
    --diffusion-fa \
    --offload-to-cpu \
    --vae-tiling \
    --temporal-tiling \
    -H "$HEIGHT" \
    -W "$WIDTH" \
    --steps "$STEPS" \
    --video-frames "$FRAMES" \
    --fps "$FPS" \
    -o "$OUTPUT" \
    ${EXTRA_ARGS[@]} >"$LOG" 2>&1 &

models.json

あくまでもこんな感じというだけですが、こんな感じでモデル単位に分けて、sh側で取得させます。
実際は絶対パスで書いています。


  {
    "model1": {
        "DIFFUSION_MODEL": "./stable-diffusion.cpp/models/model1.gguf",
        "VAE_MODEL": "./stable-diffusion.cpp/models/vae/ae.safetensors",
        "LLM_MODEL": "./stable-diffusion.cpp/models/text_encoders/text_encoders.gguf"
    }
  }

llama.cpp側のAIによる生成コマンド

こんな感じでコマンド実行出来るようにシステムメッセージを作って、あとは指示。


./generate_image.sh \
  -m z_image_turbo  \
  -p "<プロンプト>"  \
  -n "<Nプロンプト>"  \
  -c 1.0 \
  -H 512 -W 512 -s 8 \
  -i init-img.png -t 0.5

Krea2 の成果物の一部

動画内ではKrea2を使って画像生成を行っていました。
他に作ったりした画像です。生成クオリティの参考にでもどうぞ。

ファンタジー系もリアル系も、アニメ?っぽいのも結構綺麗に作ります。

LTX_23の動画生成の成果物

動画は時間がかかるので少しだけ。
両方とも画像はKrea2で生成した物をベースにI2Vでの生成です。

まとめ

local環境でここまで出来るって、すごい時代ですよね。

私はGPUを労わりたいので、そこそこしかやらないと思いますが、色々アイディアが湧く方はガッツリ使えるのでは??
基礎構築はComfyUIよりも一手間あるかも知れませんが、私はコッチのほうが好き(プログラミングが仕事だからかも・・・)

アイディアが豊富な方や企業さんとお仕事出来ればもっと活用出来るのでしょうね。
そんな気さくな貴方、私にお仕事を下さいwww

ではでは。

機材

Radeon RX7900XTX

Radeon RX 7900 XTXYahooショッピングで
“Radeon RX 7900 XTX″を探す
メルカリで
“Radeon RX 7900 XTX″を探す

AOOSTAR EG01 外付けGPU ドッキングステーション

AOOSTAR EG01Yahooショッピングで
“AOOSTAR EG01″を探す
メルカリで
“AOOSTAR EG01″を探す

玄人志向 電源ユニット 850W ATX 電源

玄人志向 電源ユニット 850W ATX 電源Yahooショッピングで
“玄人志向 電源ユニット 850W ATX 電源″を探す
メルカリで
“玄人志向 電源ユニット 850W ATX 電源″を探す


おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください