chaiNNer - チェーン画像処理タスク (特にニューラル ネットワークによって行われるアップスケーリング) を簡単、直感的、カスタマイズ可能にすることを目的とした、フローチャート/ノード ベースの画像処理 GUI。

(A flowchart/node-based image processing GUI aimed at making chaining image processing tasks (especially upscaling done by neural networks) easy, intuitive, and customizable.)

Created at: 2021-09-08 06:58:14
Language: TypeScript
License: GPL-3.0

チェーンナー

GitHub 最新リリース GitHub 総ダウンロード数 ライセンス 不和

チェーン画像処理タスク (特にニューラル ネットワークによって行われるアップスケーリング) を簡単、直感的、カスタマイズ可能にすることを目的とした、フローチャート/ノード ベースの画像処理 GUI。

chainner が行う画像処理ワークフローのカスタマイズのレベルを提供する既存のアップスケーリング GUI はありません。処理パイプラインを完全に制御できるだけでなく、いくつかのノードを接続するだけで非常に複雑なタスクを実行できます。

chaiNNer はクロスプラットフォームでもあり、Windows、MacOS、Linux で実行できます。

ヘルプ、提案、またはたむろする場合は、chainNer Discord サーバーに参加できます

注意: chainNer はまだ開発中のアルファ版です。私たちが望むところまでゆっくりと進んでいますが、追加したいすべての可能な機能が揃うまでにはかなりの時間がかかります. TypeScript、React、または Python の知識がある場合は、お気軽にこのプロジェクトに貢献して、私たちがその目標に近づくのを手伝ってください。

インストール

Github リリース ページから最新リリースをダウンロードし、システムに最適なインストーラーを実行します。そのような単純な。

chainNer は起動時に分離された統合された Python ビルドをダウンロードするため、Python をインストールする必要さえありません。そこから、依存関係マネージャーを介して他のすべての依存関係をインストールできます。

システムの Python インストールを引き続き使用したい場合は、システムの Python 設定をオンにすることができます。ただし、統合された Python を使用することをお勧めします。システムの Python を使用したい場合は、使用している Python のバージョンが 3.8 または 3.9 であることを確認してください。3.10 でも大部分は動作するはずですが、現時点では完全にはサポートされていません。

提供されている .zip ポータブル バージョンの chainner を使用している場合は、それが使用する統合された Python は他の部分と同様に移植可能ではないことに注意してください。

使い方

基本的な使い方

可能なオプションがすべてあるため、最初は難しそうに見えるかもしれませんが、chaiNNer の使い方は非常に簡単です。たとえば、アップスケールを実行するために必要なことは次のとおりです。

ただし、この時点に到達する前に、依存関係マネージャーからニューラル ネットワーク フレームワークの 1 つをインストールする必要があります。右上隅のボタンからアクセスできます。ChaiNNer は、PyTorch (一部のモデル アーキテクチャを使用)、NCNN、および ONNX のサポートを提供します。Nvidia ユーザーにとって、PyTorch はアップスケールするための推奨される方法です。AMD ユーザーの場合、NCNN はアップスケールするための推奨される方法です。

他のすべての Python 依存関係は自動的にインストールされ、chainNNer には独自の統合された Python サポートも含まれているため、既存の Python 構成を変更する必要はありません。

次に、ノード名を選択パネルにドラッグ アンド ドロップ (またはダブルクリック) してエディターに表示するだけです。次に、あるノード ハンドルから別のノード ハンドルにドラッグして、ノードを接続します。各ハンドルは特定のタイプに色分けされており、接続中は互換性のある接続のみが表示されます。これにより、何をどこに接続すればよいかを簡単に知ることができます。

エディターでワーキングチェーンを設定したら、トップバーの緑色の「実行」ボタンを押して、作成したチェーンを実行できます。ノード間の接続がアニメーション化され、処理が完了するとアニメーション化されなくなります。赤い「停止」ボタンと黄色の「一時停止」ボタンで、それぞれ処理を停止または一時停止できます。注: 通常、停止を押しても、実際のアップスケーリング ステップ中に進行中のアップスケールを強制終了することはできません。これは既知の問題であり、現時点では回避策がないため、辛抱強く終了するか、chainer を再起動するまで待ちます。

忘れないでください。chainer で実行できるアップスケーリング以外のタスクもたくさんあります。

ヒントとコツ

複数のノードを選択するには、Shift キーを押しながら、選択するすべてのノードをドラッグします。クリックするだけで個々のノードを選択することもできます。ノードが選択されている場合、バックスペースまたは削除を押してエディターからノードを削除できます。

アップスケールをバッチ処理するには、イメージ イテレーター ノードを作成し、使用するノードをイテレーターのエディター領域にドラッグします。右下隅をクリックして外側にドラッグすると、反復子を展開できます (UI ウィンドウのように)。通常と同じようにイテレーターにチェーンを接続するだけで、実行をクリックすると、選択したフォルダー内のすべての画像に対して実行されます。また、既存のチェーン全体を選択し、イテレーターのエディター領域にドラッグして、本質的に全体を反復可能なチェーンに変換することもできます。

エディタ ビューポートで右クリックすると、インライン ノード リストが表示され、そこから選択できます。このメニューは、実際に接続を作成するのではなく、接続をエディターにドラッグすることによっても取得できます。このメニューには、接続を自動的に作成するための互換性のあるノードが表示されます。

役立つリソース

互換性に関する注意事項

  • 現時点では、10.15 より古い MacOS バージョンはサポートされていません。これは、主要な依存関係 (opencv) がこのバージョンのビルドをまだ持っていないためです。ただし、次のリリースでは互換性があるはずですので、そのサポートを追加するアップデートにご期待ください。

  • Apple M1 ラップトップは、ほとんどすべてをサポートするはずですが、ほとんどテストされていません。ただし、ONNX にはまだ arm64 ビルドがなく、NCNN が正しく動作しない場合があるため、インストールできません。

  • Nvidia 以外の GPU を使用している一部の NCNN ユーザーは、すべて黒の出力を取得する場合があります。メモリ不足の結果としてグラフィックス ドライバーがクラッシュしたことが原因であると思われるため、これを修正するために何をすべきかわかりません。これが発生した場合は、タイリング量を手動で設定してみてください。

  • Arch Linux ユーザーは、chainner の統合された Python が正しく起動する前に、libxcrypt を手動でインストールする必要がある場合があります。

  • クリップボード ノードを使用するには、Linux ユーザーは xclip をインストールする必要があります。wayland ユーザーの場合は wl-copy をインストールする必要があります。

GPU サポート

PyTorch 推論では、Nvidia GPU のみがサポートされています。Nvidia GPU がない場合は、PyTorch を CPU モードで使用する必要があります。これは、PyTorch が Nvidia の CUDA のみをサポートするためです。MacOS も CUDA をまったくサポートしていないため、PyTorch は MacOS の CPU モードでのみ動作します。

ただし、NCNN をサポートする AMD または Intel GPU を使用している場合、chaiNNer は NCNN 推論をサポートするようになりました。既存の NCNN .bin/.param モデル ファイル (ESRGAN 関連の SR モデルのみがテストされています) を使用するか、chaiNNer を使用して PyTorch または ONNX モデルを NCNN に変換できます。

NCNN の場合は、設定で使用する GPU を選択してください。統合グラフィックスがデフォルトになっている可能性があります。

Nvidia GPU の場合、ONNX もオプションとして使用できます。ONNX は、PyTorch と同様に、Nvidia 以外の GPU で CPU モードを使用します。

モデル アーキテクチャのサポート

chainer は現在、限られた量のニューラル ネットワーク アーキテクチャをサポートしています。今後、さらに多くのアーキテクチャがサポートされる予定です。

パイトーチ

NCNN

  • 技術的には、典型的な CNN ベースの SR 構造に従っていると仮定すると、ほぼすべての SR モデルが機能するはずですが、私は ESRGAN (およびそのバリアント) と Waifu2x でのみテストしました

ONNX

  • NCNN と同様に、技術的にはほとんどすべての SR モデルが、典型的な CNN ベースの SR 構造に従っていると仮定して機能するはずですが、私は ESRGAN でのみテストしました。

自分でチェーンを構築する

ビルド済みバージョンの chainer を GitHub で提供しています。ただし、自分で chainner を構築したい場合は、単純に実行して

npm install
(少なくとも npm v7 がインストールされていることを確認してください)、すべての nodejs 依存関係をインストールし
npm run make
、アプリケーションを構築します。

予定されている機能

  • 計画されている機能のリストについては、Discord サーバーを確認してください。

よくある質問

名前の意味は?

  • chainer は、さまざまなタスクを一緒に「連鎖」できるという事実を利用したもので、名前の NN は Neural Networks の一般的な略語です。これは、victorca25 の機械学習ツール (trainNer、iNNfer、augmeNNt) の素晴らしい命名スキームに従っており、彼はこれにも使用する許可を与えてくれました。

Cupscale/IEU/CLI を使用しないのはなぜですか?

  • これらのツールはすべて実行可能なオプションですが、以前にそれらを使用したことがある人なら誰でも知っているように、できることが制限される可能性があります. モデルの連鎖や補間などの多くの機能はハードコーディングされており、柔軟性がほとんどありません。たとえば、画像のアルファレイヤーで別のモデルを使用できるなど、便利な特定の機能は、Cupscale には存在しません。逆に、ノードが実装されていれば、chainNer を使用してほとんど何でも行うことができます。実装したい奇妙な機能が何であれ、必要に応じてノードを接続することで自分で実装できます。Cupscale には、chaiNNer のように、コントラストの調整など、他の画像処理機能もありません。

  • Cupscale と IEU も現在メンテナンスされていないようですが、chainer は引き続き積極的に取り組んでいます。

これは物事を行うのをより難しくしませんか?

  • ある意味、そうです。これを行う独自のスクリプトをプログラミングするのが難しいのと同様に、chaiNNer も、単純に画像をドラッグ アンド ドロップし、いくつかのスライダーをいじってアップスケール ボタンを押すよりも少し難しくなります。ただし、これにより、できることの柔軟性が大幅に向上します。追加された複雑さは、実際には、いくつかの点を結び付けて、必要なことを行うだけです. それはそれほど悪くはありませんよね?

どのプラットフォームがサポートされていますか?

  • Windows、Linux、および MacOS はすべて chainner によってサポートされています。ただし、MacOS は現在 PyTorch の GPU サポートを欠いているため、GPU アップスケーリング機能を取得するには NCNN を使用する必要があります。この readme で前述したように、10.15 未満の MacOS バージョンも現在サポートされていません。M1 MacBook も十分にテストされていませんが、現在は動作するはずです。