🐢

【Stable Fast 3D】驚きの進化!画像一枚から素早くキレイに3Dデータ生成

2024/08/04に公開

技術の進化は凄いです!数日前、私は次のような記事を書きました。

https://zenn.dev/safubuki/articles/turtle-20240721-tripo-3dp

一生懸命書き上げて「やり切ったなぁ~」と思っていたのも束の間、次の記事がリリースされました💦

https://ja.stability.ai/blog/introducing-stable-fast-3d

「Stable Fast 3D」は、私の記事で紹介した「TripoSR」と同様に、一枚の画像から3Dデータを生成するAIです。そして、Stable Fast 3DはTripoSRの後継バージョンでもあります。それでは、早速比較してみましょう。

進化がすごいと思いませんか?服やズボンの細かい表現、髪の毛の質感、豊かな表情。TripoSRでも十分驚きましたが、Stable Fast 3Dにはさらに驚かされました。この感動をぜひとも皆さまにお伝えしたく、記事を作成しました。

この記事を読んで、Stable Fast 3Dの凄さを体感してください👍

ブログ対象者

本ブログ記事は、画像生成AIや画像一枚から3Dデータ生成に興味のある方を対象にしています。「Stable Fast 3D」は、オンライン上にデモ用の環境があり、特に環境構築をせずともすぐに試すことができます。また、この記事ではローカル環境に「Stable Fast 3D」を構築する方法も詳しく紹介します。こちらは少々PCのスキルが必要ですが、できる限り分かりやすく説明します。

オンラインデモアプリ(お試し)
使い方は「実行手順」の章をご確認ください。速度はローカル環境で実行するよりも僅かに遅いですが、体験する分には十分です。

https://huggingface.co/spaces/stabilityai/stable-fast-3d

作成の流れ

まず、画像一枚から3Dデータを作成するまでの流れを示します。


3Dデータ作成の流れ

3Dデータ作成後は、生成したデータを利用して3Dプリントをすることもできます。また、Stable Fast 3Dはデータの見た目が非常に美しいため、ゲームやVRなどで利用するのも良いでしょう。

必要なもの

自身の環境を構築するために必要なソフトウェアとハードウェアをリストにしました。3Dプリントまで行いたい方は、スライサーソフトと3Dプリンタを準備してください。また、TripoSRを利用したことがある方は、概ね必要な環境は同じですが、一部環境構築にあたって注意が必要な個所を赤字で示しております。詳細は環境構築の手順で説明します。


必要なものリスト

PCスペックの補足:
元々2.5GB~3.0GB消費している状況で、データを生成すると下図のようにGPUメモリを消費しました。6~7GB程度を消費するようですから、うまくやりくりすれば、8GBのGPUメモリでも動作しそうです。12GBあると安心して動作させることができます。


使用時のGPUメモリ消費量

環境構築

環境構築では「Stable Fast 3D」を中心に説明します。その他、環境を構築する上で必要なPythonやCUDA Toolkit等についても簡単に説明しますので、未導入の場合は必要な項目を参照し、環境を構築してください。なお、環境構築は上から順に実施してください。

●Python

●Git

●Visual Studio

●CUDA Toolkit (v12.4)

●Stable Fast 3D

Stable Fast 3Dについて、導入方法を詳細に解説します。

  1. Hugging Faceでアクセストークンを作成
    次のサイトで、アクセストークンを作成します。
    ※ Hugging Faceへのログインが必要です。アカウントをお持ちでない方は、Sign Upしてアカウントを作成してください。

https://huggingface.co/settings/tokens
  Create new tokenボタンを選択し、トークン作成します。


トークン作成ボタン

  1. トークンのパーミッションを設定
    次の画像のようにトークン名入力し、パーミッションを選択して、ページ下部にあるCreate tokenボタンを押します。


トークン作成画面

  1. 作成されたトークンを保存
    トークンを作成すると次のような画面が表示されるので、トークン文字列をコピーして、テキストなどに保存します(他人には見せないようにしてください)。このトークン文字列は後ほど使います。


トークン保存画面

  1. モデルへのアクセスを承認する
    次のサイトで、モデルへのアクセス承認を行います。名前、メールアドレスなど必要事項を入力して、Agree and access repositoryボタンを押します。

https://huggingface.co/stabilityai/stable-fast-3d


モデルへのアクセス承認

  1. Stable Fast 3DのソースをGitHubから取得
    まず、次のサイトにアクセスします。

https://github.com/Stability-AI/stable-fast-3d
  Codeボタンを選択し、Download ZIPで任意の場所に保存後、展開します。


Stable Fast 3D GitHub

Gitを扱える方の場合(クリックで開く)

Gitを扱える方は、zipでダウンロードせずに、cloneコマンドでクローンしても良いです。

git clone https://github.com/Stability-AI/stable-fast-3d.git
  1. Windows PowerShell起動
    検索窓に「windowspowershell」と入力し、PowerShellを起動します。

  1. Stable Fast 3Dのフォルダ内に移動
    PowerShellで、Stable Fast 3Dのフォルダに移動します。
    CドライブにStable Fast 3Dのフォルダを保存、展開した場合は、次のコマンドを入力します。
    ※ご自身の環境に合わせて、適宜以下のコマンドを変更してください。
cd c:\stable-fast-3d


Stable Fast 3Dフォルダ内へ移動

  1. venv(Python仮想環境)を作成
    コマンドを入力し、Stable Fast 3Dフォルダ内にvenv(Python仮想環境)を作成します。
py.exe -m venv .venv
  1. 仮想環境アクティベート
    コマンドを入力し、仮想環境をアクティベート(有効化)します。
.\.venv\Scripts\activate

  下図のように(.venv)が表示されたら、アクティベート成功です。


仮想環境アクティベート

  1. ツールアップデート (仮想環境)
    コマンド入力し、仮想環境内のpip, wheel, setuptoolsのアップデートを行います。
py.exe -m pip install --upgrade pip wheel setuptools

  エラー表示なく、successfullyが表示されたら成功です。

  1. pytorchインストールコマンド取得
    pytorchと呼ばれる機械学習ライブラリをインストールします。
    以下のPytorch.orgサイトにアクセスし、少し下にスクロールすると、環境の選択画面があります。この選択画面で、自身の環境に合わせてポチポチ選択します。すると「Run this Command」欄(赤線で囲った箇所)にコマンドが表示されますので、これをコピーしてください。

https://pytorch.org/get-started/locally/


Pytorch 環境選択画面

  1. pytorchインストールコマンド実行 (仮想環境)
    手順11でコピーしたコマンドをPowerShellに貼り付けて実行します。
    エラー表示なく、successfullyが表示されたら成功です。

  2. Stable Fast 3Dが必要なライブラリをインストール (仮想環境)
    次のコマンドを実行して、Stable Fast 3Dが必要なライブラリをインストールします。エラー表示なく、successfullyが表示されたら成功です。

pip install -r requirements.txt
  1. Gradio demo(WebUI画面)が必要なライブラリをインストール (仮想環境)
    次のコマンドを実行して、Gradio demo(WebUI画面)が必要なライブラリをインストールします。エラー表示なく、successfullyが表示されたら成功です。
pip install -r requirements-demo.txt
  1. Hugging Face CLIをインストール
    次のコマンドを実行して、Hugging Face CLIをインストールします。
pip install -U "huggingface_hub[cli]"
  1. アクセストークンを使ってHugging Faceにログイン① (仮想環境)
    次のコマンドを実行して、Pythonの対話モードにします。
python

  対話モードで次の内容を入力します。

from huggingface_hub import login
login()
  1. アクセストークンを使ってHugging Faceにログイン② (仮想環境)
    次のような画面が表示されるので、Enter your token(入力非表示)に手順3でテキストに保存したトークンを貼り付け、Add token as git credential?で「Y」を入力します。内容に問題が無ければ、Login successfulが表示されます。Ctrl + zでPythonの対話モードから抜けます。


Hugging Faceログイン

  1. Stable Fast 3Dの起動確認 (仮想環境)
    コマンドを実行して、Stable Fast 3Dアプリケーションを起動します。Running on local URLが表示されたら成功です。
    ※ PythonをUTF-8モードで動作するように環境変数を設定してから実行しないとエラーが出るため、次のコマンドを実行します。
$env:PYTHONUTF8 = "1"; python gradio_app.py
  1. Stable Fast 3DのWeb UI画面を起動
    Webブラウザを開き、手順18の画面に表示された「Running on local URL」のアドレス「http://127.0.0.1:7860」をブラウザに入力します。次の画面がブラウザ上に表示されたら成功です。


WebUI画面

  1. 起動用バッチファイルの作成
    次回からの起動を楽にするために、起動用のバッチファイルを作成します。以下の内容を参考にファイルを作成し、Stable Fast 3Dのフォルダ直下(gradio_app.pyrequirements.txtと同じ階層)に保存してください。このファイルのショートカットを作成してデスクトップに置けば、ワンクリックで起動が可能になります👍
    注意: バッチファイル実行後、すぐにブラウザが起動しますが、Stable Fast 3Dアプリがまだ起動していないため「ページに到達できません」と表示されることがあります。その場合は、Stable Fast 3Dアプリが起動するのを待ってから、ブラウザを再度読み込んでください。
sf3d_run.bat(起動用バッチファイル)
@echo off
REM Move to Stable Fast 3D directory
cd /d %~dp0

REM Open URL in browser
start http://127.0.0.1:7860

REM Activate the virtual environment
call .venv\Scripts\activate

REM Set the PYTHONUTF8 environment variable and run gradio_app.py
set PYTHONUTF8=1
python gradio_app.py

REM Deactivate the virtual environment (if necessary)
deactivate

REM Prevent the command prompt from closing
pause

お疲れさまでした!
これで、全ての環境構築の説明が終わりました。
引き続き、環境構築時に発生したトラブルの対処方法を示したいと思います。

トラブル対処法

この章では、トラブルの対処方法を示します。 次に示すエラーは、いずれもgradio_app.pyというUIを起動するプログラムを実行するときに依存するモジュールで発生します。もし同様のエラーが発生した場合は、以下の内容を参考にしてください。

実行手順

作成の流れをつかみやすくするために、ブログの最初で示した図を再掲します。この図の順序に従って、画像生成AIで画像を作成や、Stable Fast 3Dの具体的な使い方を説明します。


3Dデータ作成の流れ(再掲)

●画像生成AI

まず、Stable Fast 3Dにインプットするための画像を、画像生成AIで作成します。ここでは、手軽に画像を生成する方法をご紹介します。

手軽に画像を生成する方法

画像生成AIは、普段使い慣れたものを使用するのが一番ですが、無料で画像を生成したい場合は「Copilot」がオススメです。Copilotは、DALL-E3というChatGPTと同じ画像生成AIを使用しているため、とてもきれいな画像を生成できます!

Microsoft Edgeブラウザの検索欄で「Copilotを開く」アイコンをクリックし、画像生成のためのプロンプト(指示文)を入力するだけで画像を生成することができます。


Copilotアイコン

●3Dモデル生成AI(Stable Fast 3D)

画像生成AIで作成した画像を元に、Stable Fast 3Dでデータを作成します。ここでは、Stable Fast 3Dの使い方を紹介します。

Stable Fast 3Dの使い方

Stable Fast 3Dの使い方を説明します。シンプルな操作なので、きっとすぐに慣れると思います。

  1. Stable Fast 3Dを起動
    環境構築時に作成した起動用バッチファイル「sf3d_run.bat」を実行して、Stable Fast 3Dを起動します。なお、起動後の画面のTipsには次のような内容が記載されています。
    Tipsに記載の内容
    ・画像にすでにアルファチャンネル(透明度情報)が含まれている場合、背景除去のステップをスキップできます。
    ・背景除去時の前景比率を調整して前景オブジェクトのサイズを制御できます。これにより形状に影響を与えることができます。
    ・メッシュトポロジー(3Dモデルの表面構造定義)を制御するためにリメッシュオプションを選択できます。薄い表面ではメッシュにアーティファクト(データの誤りやノイズ)が発生する可能性があるため、その場合はオフにする必要があります。
    ・独自のHDR環境マップをアップロードして3Dモデルの照明条件を調整できます。


起動後の画面

  1. 2D画像用意・背景除去
    2D画像を開き「Remove Background」ボタンを押して背景を除去します。Foreground Ratioを調整することで、前景オブジェクトのサイズを制御し、結果に影響を与えることができます。


2D画像用意・背景削除操作画面

  1. 3Dデータ作成
    背景除去後「Run」ボタンを押して3Dデータを作成します。


データ作成操作画面

  1. データ作成完了・ダウンロード
    データ作成が完了したら、画面右の赤枠で示したボタンを押してデータをダウンロードできます。


データ作成完了・ダウンロード操作画面

  1. 仕上がりの確認・照明効果変更
    仕上がりは自由な角度から確認できます。きれいな仕上がりをぜひご確認ください✨また、サンプルや自作のHDR環境マップを適用することで照明条件を変更することもできます。

Stable Fast 3DとTripoSRの比較

同じ2D画像をインプットとして、Stable Fast 3DとTripoSRそれぞれから3Dデータを出力して比較しました。興味深い結果が得られましたので、紹介したいと思います。

図中では、Stable Fast 3Dを「SF3D」、TripoSRを「Tripo」と省略して表現しています。また、TripoSRは必ず左右反転した3Dデータが出力されるため、比較画像も左右反転した形で示しています。


Stable Fast 3D・TripoSR 比較①

  • 男性キャラ
    どちらの3D形状も申し分ありませんが、新しいStable Fast 3Dの方が細部の表現が豊かで、より綺麗です。
  • カーゴタイプゴミ箱
    質感はStable Fast 3Dの方が優れていますが、3D形状の正確性に関しては、2D画像で見えない部分も含めてTripoSRの方が上だと感じました。Stable Fast 3Dでは中央に大きな穴が開いています。
  • ゴミ箱
    単純な形状はどちらも正確に出力できました。
  • えんぴつ立て
    見た目はStable Fast 3Dが鮮やかで、えんぴつ立ての表情も正確に表現しています。一方、TripoSRは暗めですが、鉛筆一本一本の3D形状を正確に出力しようとしています。


Stable Fast 3D・TripoSR 比較②

  • カメ
    元の2D画像の構図や角度の影響で、どちらも奥行きのサイズ感がイマイチです。また、脚のつき方も斜めになっています。これは元画像を工夫する必要がありそうです。
  • リアルカメ
    リアルなものに関しては、細かい表現も含めてStable Fast 3Dの方が優れています。足が一本消えているのは、背景除去の際に消えてしまったためです。
  • 植物
    正方形の形状はStable Fast 3Dの方が正確ですが、植物の形状は別の角度から見ると省略されているのか潰れています。一方、TripoSRは植物の葉一つ一つを3Dデータにしようとしています。
  • イチゴキューブ
    どちらも失敗ですが、Stable Fast 3Dのイチゴは鮮やかで美味しそうです。一方、TripoSRは見えない部分も含めて3D化しようとしているのが伝わってきます。

Stable Fast 3Dが新しいからと言って、全ての面で優れているわけではなく、ケースによってはTripoSRを利用したほうが良い場合もあると感じました。私はメインでStable Fast 3Dを利用しつつ、出力結果に満足できなければ、TripoSRをサブ的に使おうと思います。

●スライサー&プリンタ

出力した3Dデータを3Dプリンタで印刷したい場合、いつも通り使い慣れたスライサーとプリンタを使って印刷を行うだけです👍 よく利用されているcuraというスライサーソフトであれば、GLBファイルを読み込むことが可能です。ソフトを起動したら、GLBファイルをドラッグ&ドロップしてください。


スライサー&3Dプリント

以上で全ての説明は完了となります!
本当にお疲れさまでした🎉

まとめ

少しでも早く記事をお届けするため、私のTripoSRの記事を流用しつつ、Stable Fast 3Dに関する部分についてはしっかり書き起こしました。それにしても、TripoSRがリリースされてから約5か月でこの進化は本当にすごいです!私は、3Dプリンタに何か活かせないかと思って始めましたが、また別のことにチャレンジしてみるのも面白そうだと思いました。

この記事を読んだ方も、ぜひ様々な取り組みに活用してみてください。もし分からないことや、ちょっとした疑問などがありましたら、遠慮なくコメント欄に書き込んでください。🐢

最後まで読んでくださり、ありがとうございました!

リンク

私が書いた、GitHub CopilotというAIを利用したコーディングツールの記事もあります。プログラミングに興味がある方は、ぜひこちらの記事も読んでみてください。AIをうまく活用すると、モノづくりの速度が劇的に改善します。

https://zenn.dev/safubuki/articles/turtle-20240223-gitcopilot

Stable Fast 3Dのベース技術であるTripoSRの記事です。TripoSRは少し古い技術になってしまいましたが、画像生成のコツや成功・失敗事例なども記載しています。参考になる部分もまだあると思いますので、読んでみてください。

https://zenn.dev/safubuki/articles/turtle-20240721-tripo-3dp

画像1枚から動画を生成するAIツール『Kling AI』の使い方やコツを紹介します。さらに、CM風の動画を作成することで、実際のシーンでの活用例も示しました。うまく融合させれば、モノづくりとプロモーションが画像1枚から可能になります♪

https://zenn.dev/safubuki/articles/turtle-20240916-klingai

更新履歴

  • 2024/08/05
    オンラインデモアプリへのリンクを分かりやすくしました。
    環境構築の不要な手順を削除しました。
    Stable Fast 3Dの使い方の誤記と分かりにくい表現を修正しました。

  • 2024/08/06
    Stable Fast 3DとTripoSRの比較を追加しました。

  • 2024/08/07
    Python仮想環境アクティベート時のエラー対処方法を追加しました。

  • 2024/09/17
    AI関連の動作生成AIツール『Kling AI』の記事をリンクに追加しました。

GitHubで編集を提案

Discussion