Swift

Swift

【Swift】swiftからChatGPT APIを使ってみる

ここ暫く話題になっているChatGPTですが、3月1日にAPIが公開されました。元々OpenAI APIがあり、そこにChatGPTのAPIが追加された形になります。今回はswiftからこのChatGPT APIを使ってみます。 前書き 今...
Swift

【Swift】Core ML Stable DiffusionのStableDiffusionモデルの対応状況

Core ML Stable DiffusionでStableDiffusionモデルがどの程度対応しているか確認してみました。 実行環境はM1 Mac mini 16GB RAMです。 --model-version実行可否デフォルト解像...
Swift

【SwiftUI】Core ML Stable Diffusionをアプリに実装する サンプルコード

以下の記事で作成したコードに若干手を加えたものがあるので、せっかくなので公開します。ざっくり作っただけなので粗がありますが参考までに Sample1 promptとseedとdisableSafetyを追加、seed=-1でランダムseed...
Swift

【SwiftUI】Core ML Stable Diffusionをアプリに実装する

今回はCore ML Stable Diffusionをアプリで実行できるようにします。 残念ながら私はApple Siliconを搭載したiPadを所持していない為、macOSに対応したマルチプラットフォームiOSアプリとして作成していま...
Swift

【Swift】Core ML Stable Diffusionを使ってみた(Apple Silicon)

AppleがApple Silicon向けにStable Diffusionを最適化したものを発表しました。今回はこれを試してみます。 今回はコマンドラインからの実行までですが、本記事の大半は占める環境構築してモデルを変換するまでの作業です...
Swift

【Swift】よく使うアプリの起動時の分岐処理

私がよく使うアプリの起動時処理を紹介します。 アプリの起動時に行いたい処理はいくつかあると思います。私は初回起動時に初期データの追加、チュートリアルの表示、ATTダイアログの表示を行います。また更新後の起動時には更新内容の表示を行います。 ...
Swift

【Swift】actorとActor属性(attribute)の違い

SwiftのActorはactorとして宣言する方法とActor属性でマークする方法があります。この2つの使い方では様々な違いがあります。 ActorはActorインスタンス毎に排他制御されます。まずは分かりやすくactorで宣言した場合で...
Swift

【Swift】非同期処理について(async、await、actor)

Swift5.5で非同期処理に大幅な追加が行われました。 非同期処理でお馴染みのasync、await、そして非同期処理に欠かせない排他制御の為のactorです。 async/await await async/awaitとよく言われますが...
Swift

【Swift】Actorがうまく動作しない(シミュレータ)

Actorの動作確認は実機で行うべきです。シミュレータでは実機と異なる動作をする場合があります。 おそらくシミュレータに割り当てられているスレッド数が少ないようで、異なるActorでも同一スレッドで動作します。 結果として、本来は異なるAc...
Swift

【SwiftUI】ローカル通知

SwiftUIアプリで作ってるので一応タイトルにSwiftUIと付けていますが、通知部分は大した他と変わりません。 SwiftUI的な部分はObservableObjectに持たせてEnvironmentObjectで使ってる程度のもので、...