月: 2024年10月

  • [ComfyMaster23] 特別編: 画像の髪型を自由自在に変えてみよう!

    ComfyUIを使いこなしている皆さん、画像生成の可能性をさらに広げてみませんか?今回は特別編、画像内の髪型をAIが自動で検出し、思い通りの髪型に自由自在に変換する、一歩進んだ応用ワークフローをご紹介します。

    人物画像の髪型を変更したいと思った時、従来の画像編集ソフトでは、髪を選択して細かく加工する必要があり、非常に手間がかかりました。しかし、ComfyUIとStable Diffusionを組み合わせることで、プロンプトで指定するだけで、まるで魔法のように髪型を変更することが可能になります。

    こんにちわ、AICU media編集部です。
    ComfyUI マスターガイド」第22回目になります。
    この記事では、Florence2とSAM2による髪と人物のマスク作成、背景の自動補完、インペイントによる髪型生成、そして最終的な画像合成と補正といった、ワークフローの全貌を詳細に解説します。ComfyUIのノードを活用した高度な画像処理をマスターし、Stable Diffusionによる画像生成を新たなレベルに引き上げましょう!

    前回はこちら

    ▼[ComfyMaster22] レイアウトそのままにアニメを実写化!image-to-imageとスタイル変換で実写化レベルを制御 #ComfyUI

      1. 今回実装する処理のフロー

      髪型の変更については既に、インペイントのモデルコンディショニングを使って、こちらの記事で解説いたしました。
      ▼[ComfyMaster20] ComfyUIの高度インペイント技術で自然な髪型変更を実現!#ComfyUI #InpaintModelConditioning

      今回の処理は、髪型を変更したい画像に対して、自動で髪の毛を検出し、プロンプトで指定した任意の髪型に変更するワークフローです。大まかな処理の流れは、以下になります。

      1. Florence2とSAM2で髪と人物のマスクを別個で作成する
      2. 背景から人物を取り除き、人物がいた箇所を補完する
      3. 髪のマスクと、人物のマスクを反転させて作成した背景のマスクを合成し、髪と背景のマスクを作成する
      4. 髪と背景のマスクを利用してインペイントを実行し、任意の髪型を生成する
      5. 補完した背景と、任意の髪型に変更した人物の画像を合成し、1枚の画像にする
      6. 合成した画像に対して、低めのDenoising strengthでサンプリングを行い、人物と背景を馴染ませる

      このフローにより、画像とプロンプトを与えることで、自動で髪型を変更することができます。

      2. 使用するカスタムノード

      今回使用するカスタムノードは、以下の通りです。それぞれComfyUI Managerからインストールしてください。

      ComfyUI-Florence2

      ComfyUI-Florence2は、Florence2をComfyUIで使用するためのカスタムノードです。Florence2は、Microsoftが開発した視覚言語基盤モデルで、画像キャプション生成、物体検出、ビジュアルグラウンディング、セグメンテーション、文字認識、など、幅広いビジョンタスクを実行できます。今回は、プロンプトからのオブジェクト検出(髪と人物)を実現するために使用します。
      なお、Florence2に必要なモデルは、インストール時に「ComfyUI/models/LLM」フォルダに自動でダウンロードされます。
      リポジトリは、以下になります。

      https://github.com/kijai/ComfyUI-Florence2

      ComfyUI-segment-anything-2

      ComfyUI-segment-anything-2は、SAM2 (Segment Anything Model 2) をComfyUIで利用するためのカスタムノードです。SAM2は、Metaが開発した最新のオブジェクトセグメンテーションモデルで、画像と動画の両方に対応しています。今回は、Florence2で検出した髪や人物をセグメンテーションし、マスクを作成するためにSAM2を使用します。
      SAM2に必要なモデルは、Kijai氏のHugging Faceのリポジトリから「ComfyUI/models/sam2」フォルダに自動でダウンロードされます。
      リポジトリは、以下になります。

      https://github.com/kijai/ComfyUI-segment-anything-2

      comfyui-tensorop

      ComfyUI-TensorOpは、ComfyUIでテンソル操作を行うためのノードセットです。今回のワークフローで、このノードを直接使用することはありませんが、ComfyUI-Florence2内で使用されているため、インストールが必要になります。
      リポジトリは、以下になります。

      https://github.com/un-seen/comfyui-tensorops

      ComfyUI WD 1.4 Tagger

      ComfyUI WD 1.4 Taggerは、画像からDanbooruタグを取得するためのカスタムノードです。背景と人物の合成後の調整でのサンプリングの際に、画像からタグを抽出し、それをプロンプトとして利用するために使用します。
      リポジトリは、以下になります。

      https://github.com/pythongosssss/ComfyUI-WD14-Tagger

      ComfyUI Inpaint Nodes

      ComfyUI Inpaint Nodesは、画像のインペイント(欠損部分の補完)をより効果的に行うためのノードセットです。変更後の髪の生成に使用します。
      リポジトリは、以下になります。

      https://github.com/Acly/comfyui-inpaint-nodes

      ComfyUI-KJNodes

      ComfyUI-KJNodesは、ComfyUIの既存ノードの機能を組み合わせて作成された便利なノードを提供しています。今回使用するサンプルワークフローで、このカスタムノードを使っているため、インストールが必要になります。インストールは、ComfyUI Managerから可能です。
      リポジトリは、以下になります。

      https://github.com/kijai/ComfyUI-KJNodes

      3. 使用するモデル

      チェックポイント

      今回は、RealVisXL_V4.0を使用しました。他のSDXLモデルでも問題ありません。以下のリンクよりダウンロードし、「ComfyUI/models/checkpoints」に格納してください。

      https://huggingface.co/SG161222/RealVisXL_V4.0/blob/main/RealVisXL_V4.0.safetensors

      LoRA

      LoRAにMidjourney Mimicを使用します。Midjourney Mimicは、Midjourneyのような美麗な画像を生成するためのLoRAです。全体的に綺麗な画像を生成できるように、このLoRAを使用しています。以下のリンクよりLoRAをダウンロードし、「ComfyUI/models/loras」フォルダに格納してください。

      https://huggingface.co/imagepipeline/Midjourney-Mimic-v1.2/blob/main/2ac68c15-7d9b-49e0-a4a2-796d3093a555.safetensors

      ControlNet

      ControlNetには、AnyTest V4を使用します。AnyTest V4は、形状維持をしつつ、スタイル変換の余地を残した柔軟なControlNetです。以下のリンクよりダウンロードし、「ComfyUI/models/controlnet」フォルダに格納してください。

      https://huggingface.co/2vXpSwA7/iroiro-lora/blob/main/test_controlnet2/CN-anytest_v4-marged.safetensors

      インペイント

      インペイントで使用するモデルにMAT_Places512_G_fp16を使用します。以下のリンクよりダウンロードし、「ComfyUI/models/inpaint」フォルダに格納してください。

      https://huggingface.co/Acly/MAT/blob/main/MAT_Places512_G_fp16.safetensors

      4. 使用する画像素材

      今回は、以下の画像に対して髪形変更処理を行います。

      画像

      ☆ワークフローのJSONファイルと画像ファイルは文末にございます

      5. ワークフローの全体像

      ワークフローの全体像は以下になります。

      画像

      このワークフローをフローチャート化したものが以下になります。

      画像

      各ノードの詳細は以下になります。グループごとに解説します。

      1. 画像読み込み: 元の画像を読み込みます。
      2. 物体検出: Florence2モデルを使用して、元の画像内の髪と人物を検出します。
      3. 領域分割: SAM2(Segment Anything Model 2)を使用して、髪と人物の正確なマスクを作成します。
      4. マスク処理: 人物のマスクを反転し作成した背景マスクと、髪のマスクを合成し、インペイント用の領域を作成します。
      5. 背景生成: 人物マスクを利用して、マスクされた領域を埋めるための背景を別のプロセスで生成します。
      6. インペイント: 背景マスクと髪マスクを合成したマスクを利用して、髪型を変更するインペインティングを行います。
      7. 初期サンプリング: 背景マスクと髪マスクを合成したマスクを利用したインペインティングで、新しい髪の初期バージョンを作成します。
      8. 人物マスクの再作成: Florence2とSAM2を再度使用して、初期サンプリングで生成された画像から人物を検出し、マスキングします。
      9. 画像合成: 再作成された人物マスクを利用して、背景画像と初期サンプリングで生成された画像を合成します。
      10. 最終サンプリング: 合成された画像を弱いdenoiseでサンプリンクし、最終的な画像を洗練します。

      6. ワークフロー解説

      ここでは、セクションごとに処理内容を解説します。

      Florence2によるオブジェクト検出

      画像
      • まず、DownloadAndLoadFlorence2ModelノードでFlorence2のモデルをロードします。ここでは、基本モデルのFlorence-2-baseを選択しました。
      画像
      • 次に、ロードしたFlorence2モデルと対象画像をFlorence2Runノードに入力します。ここでは、taskにcaption_to_phrase_groundingを選択し、テキストに「human, hair,」を入力しました。caption_to_phrase_groundingは、入力したテキストに対応する画像領域を特定するタスクです。今回は、人物と髪を検出したいので、テキストに「human, hair,」を入力しています。
      画像
      • 以下がFlorence2Runノードの実行結果です。Florence2Runノードのimage出力をPreview Imageノードで表示しています。人物全体と髪がバウンディングボックスで検出されていることが確認できます。
      画像
      • Florence2Runノードのdata出力は、Florence2 Coordinatesノードに接続されます。dataはリストになっているため、ここでリストのどのデータを使用するかをindexで選択します。今回の場合、「human, hair,」と入力したので、index0がhuman、index1がhairになります。
      画像

      SAM2によるセグメンテーション

      画像
      • Florence2の結果を利用してセグメンテーションするためにSAM2を利用します。まず、(Down)Load SAM2ModelノードでSAM2のモデルをロードします。ここでは、modelsam2_hiera_base_plus.safetensorsを選択しました。このモデルは、中程度のサイズと性能を持ち、精度と速度のバランスが取れているモデルです。今回は、画像1枚を処理するので、segmentorsingle_imageになります。
      画像
      • 次にSam2Segmentationノードでセグメンテーションを行います。入力には、ロードしたSAM2モデル、対象画像、Florence2の検出結果のバウンディングボックスを入力します。今回は、髪と人物を別々でセグメンテーションするので、individual_objectstrueに設定します。
      画像
      • セグメントの結果は以下になります。左が人物全体、右が髪をセグメントでマスクした結果になります。
      画像
      • 人物のマスクは、InvertMaskで反転させ、背景マスクを作成します。
      画像

      背景の補完

      画像から人物を削除し、背景のみの画像を生成します。

      画像
      • SAM2で生成した人物マスクをGrowMaskノードで拡張させます。
      画像
      • インペイントで使用するモデルをLoad Inpaint Modelノードでロードします。
      画像
      • Inpaint(using Model)ノードに拡張したマスク、ロードしたインペイントモデル、対象画像を入力し、インペイントを実行します。
      画像
      • 以下のようにインペイントが上手くいかない場合は、マスクの拡張範囲を広げたり、シード値を変えて生成を繰り返してください。
      画像

      マスクの合成

      髪マスクと背景マスクを合成し、人物以外をインペイントするためのマスクを作成します。

      画像
      • MaskCompositeノードのdestinationに背景マスク、sourceに髪マスクを入力し、マスクを合成します。operation(合成方法)はaddにします。
      画像
      • 必要に応じて、合成したマスクを拡張してください。
      画像
      • ImageAndMaskPreviewノードに対象画像と合成したマスクを入力し、結果を確認します。しっかり人物以外がマスクされていることを確認できました。
      画像

      髪の生成

      指定した髪形に変更します。

      画像
      • まず、Load CheckpointRealVisXLをロードします。
      • 次にLoad CheckpointMODELCLIP出力をLoad LoRAに接続します。Load LoRAでは、Midjourney Mimicをロードします。
      • Load LoRACLIP出力は、2つのCLIP Text Encode (Prompt)ノードに接続します。上のCLIPがポジティブプロンプト、下のCLIPがネガティブプロンプトになります。
      • ポジティブプロンプトには、髪形を入力します。今回は「afro」を入力しました。
      • ネガティブプロンプトには、以下のプロンプトを入力しました。
      worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch, nsfw, accessories, human,
      画像
      • 次にControlNetの設定です。まず、Load ControlNet ModelノードでAnyTest V4をロードします。
      • Apply ControlNet(Advanced)にポジティブ/ネガティブプロンプト、ロードしたControlNetモデル、対象画像を入力し、ControlNetを適用します。strengthは弱めに設定してください。
      画像
      • 次にインペイント用のLatentを作成します。VAE Encode (for inpainting)ノードに対象画像、Load CheckpointのVAE出力、背景マスクと髪マスクを合成したマスクを入力します。必要に応じて、grow_mask_byの値を調整し、マスクを拡張してください。
      画像
      • KSamplerノードには、Load LoRAMODEL出力、Apply ControlNet(Advanced)positive/negative出力、VAE Encode (for inpainting)LATENT出力を入力し、髪の生成を行います。
      • KSamplerノードの生成結果のLATENTは、VAE Decodeノードで画像に変換します。
      画像

      人物と背景の合成と補正

      新たに髪を生成した画像から人物を抽出し、背景と合成します。その後、合成した画像に弱いノイズでサンプリングを行い、画像を補正します。

      画像
      • まず、新たに髪を生成した画像から人物を抽出するために、Florence2RunFlorence2 CoordinatesSam2Segmentationノードで人物マスクを再作成します。Florence2Runノードには、新たに髪を生成した画像と「Florence2によるオブジェクト検出」でロードしたFlorence2モデルを入力します。Florence2Runノードのテキストには、「human,」を入力します。その他は、「Florence2によるオブジェクト検出」セクションで説明した内容と同じです。
      画像
      • 次にImageCompositeMaskedノードで背景と人物を合成します。destinationには「背景の補完」で生成した背景画像を、sourceには新たに髪を生成した画像を、maskには再作成した人物マスクを入力します。
      • 合成した画像は、VAE EncodeノードでLatentに変換します。
      画像
      • 合成した画像の補正に使用するControlNetを新たに用意します。「髪の生成」セクションで使用したControlNetは、ポジティブプロンプトが「afro」のみであり、画像の特徴を捉えたポジティブプロンプトではないため、新たにポジティブプロンプトを作成し、補正の精度を上げます。
      • WD14 Taggerノードで合成画像からタグを抽出します。それをCLIP Text Encode(Prompt)ノードに入力し、その出力をApply ControlNet (Advanced) ノードに入力します。
      • CLIP Text Encode(Prompt)ノードのclip入力には、Load LoRAノードのCIP出力を入力します。
      • Apply ControlNet (Advanced)ノードのnegative入力には、「髪の生成」セクションのネガティブプロンプトのCLIP Text Encode(Prompt)ノードの出力を入力します。control_netには、「髪の生成」セクションのLoad ControlNet Modelノードの出力を入力します。image入力には、合成画像を入力します。strengthの値は、少し強めの1.10を設定しました。画像のテイストを崩さないように補正するためです。
      画像
      • 最後にKSamplerノードで補正を実行します。KSamplerノードのmodel入力には、「髪の生成」セクションのLoad LoRAノードの出力、positive/negative入力にはApply ControlNet (Advanced)ノードの出力、latent_imageには合成画像をLatentに変換したものを入力します。
      画像

      7. ワークフローの実行

      それでは、ワークフローを実行してみます。以下が髪形をアフロに変換した画像です。しっかりアフロに変換されています。色を指定していなかったので、この時は金髪になっています。

      画像

      他の髪型にも変更してみました。以下が一覧になります。

      画像

      いかがでしたでしょうか?ComfyUIを上手く使うと、このように実用的な画像の生成システムの構築が可能になります。みなさんも様々な画像生成に挑戦してみてください!

      X(Twitter)@AICUai もフォローよろしくお願いいたします!

      画像生成AI「ComfyUI」マスターPlan

      画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。

      • メンバー限定の会員証が発行されます
      • 活動期間に応じたバッジを表示
      • メンバー限定掲示板を閲覧できます
      • メンバー特典記事を閲覧できます
      • メンバー特典マガジンを閲覧できます
      • 動画資料やworkflowといった資料への優先アクセスも予定

      ゼロから学ぶ「ComfyUI」マガジン

      https://note.com/aicu/m/md2f2e57c0f3c

      マガジン単体の販売は1件あたり500円を予定しております。
      2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。

      https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self

      もちろん、初月は無料でお試しいただけます!
      毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
      退会率はとても低く、みなさまにご満足いただいております。
      ✨️オトクなメンバーシップについての詳細はこちら


      ■ボーナストラック:今回のワークフローファイルと画像


      この記事の続きはこちらから https://note.com/aicu/n/n2bc8d72e0eb4

      Originally published at https://note.com on Oct 12, 2024.

    1. 期間限定無料「ガンマミィ・ジェネレーター」を提供開始!

      BlendAI x AICU コラボ企画!
      BlendAIが展開する新AIキャラクター「ガンマミィ」誕生記念
      無料で高品質な「ガンマミィ」を生成できるチャットアプリ「ガンマミィ・ジェネレーター」を期間限定で提供開始しました。

      ▼ガンマミィ・ジェネレーター
      https://gammamygenerator.aicu.ai/

      また併せて、「ガンマミィ」誕生記念イラストコンテストの締切が延長になりました。

      新たなエントリー締め切りは2024年10月15日(火) 23:59となります。
      ガンマミィ・ジェネレーターによる当コンテストへの参加は歓迎です。
      規定のエントリータグに加えて、
      #ガンマミィジェネレーター」のタグも付与していただけると幸いです。

      #ガンマミィ #Gammamy #AICUxBlendAIガンマミィ誕生記念イラストコンテスト #ガンマミィジェネレーター

      https://x.com/AICUai/status/1844698399423230161

      また、コンテストの応募フォームも忘れずにエントリーください。

      ▼コンテスト応募フォーム
      https://j.aicu.ai/HelloGammamy

      いつまで無料で使えるの?

      本サービスはAICU AIDX Labの実験サービスです。
      「開発者のクレジットが尽きるまで」無料と宣言されています。

      しらいはかせのポケットマネーで運営されているそうです。

      ガンマミィ・クラウドファンディングも実施中

      ガンマミィは3Dモデルとボイスのクラウドファンディングを実施中です。
      プロジェクトの第1弾AIキャラクターであるデルタもんもCotoverseで応援しています。

      ▼Campfireでのクラウドファンディング「AIキャラと会話できるアプリの新キャラ『ガンマミィ』の3Dモデルと音声の制作」
      https://camp-fire.jp/projects/795978/view

      期待の新人声優・清水詩音さんも応援しています。

      以下、ユーザーさんたちが作ったミィちゃんの活躍をお送りします。

      ▼ガンマミィ・ジェネレーター
      https://gammamygenerator.aicu.ai/

      お試しください!

      #ガンマミィ・ジェネレーター

      Originally published at https://note.com on Oct 11, 2024.

    2. 【解説】LINE-ChatGPT倫理問題を整理する – 全力肯定彼氏くん[LuC4]に訪れたサービス開始以来の最大の危機

      2024年10月10日、LINEデベロッパーズコミュニティが開催されました。

      https://linedevelopercommunity.connpass.com/event/331446

      Dify x LINE Botに注目したたいへん有意義な勉強会でした。
      特に、チャットボットやAITuber、Difyの開発者さんは注目です。


      その中で、AICU代表・白井暁彦(@o_ob)が登壇いたしました内容に緊急性があり、話題になっておりますので講演録を紹介いたします。

      ■LINE-ChatGPT倫理問題を整理する – 全力肯定彼氏くん[LuC4]に訪れたサービス開始以来の最大の危機

      全力肯定彼氏くん[LuC4]とは

      女子中高生を中心に10,000人を超える友だちを持つ伝説の癒し系LINEチャットボット。友だち登録はこちらから
      https://j.aicu.ai/LUC4

      画像

      「全力肯定彼氏くん[LuC4]」は、女子高生を中心に1万人以上のユーザーを抱える伝説のAI彼氏ボットです。2年前から開発をスタートし、ユーザーアンケートなども公開しながら、実験的なプロジェクトとして進めてきました。

      [LuC4]サービスの歴史

      画像

      2023年4月の初期バズをきっかけに、ユーザー数は5000人を超え、運用コストやUX面での課題が顕在化してきました。様々なプラットフォームでバージョンアップを重ね、最近ではDifyなどを使ってマンガジェネレーターのようなプロジェクトも試していました。

      しかし、2023年11月7日、ChatGPTの登場により、AIチャットボットはコモディティ化が進みました。一方で、AI彼氏ボットは依然として人気があり、有名VTuberさんがAI彼氏にツンデレされる動画などが流行していました。

      この西園チグサさんの動画からもわかるように、「全力肯定彼氏くん[LuC4]」は、倫理感の強いキャラクター設定で、自己肯定感が弱めの女性に対して、お悩みを全力で肯定してくれる上に、エッチな話にも乗ってこないという心理的安全性が特徴的でした。そのため、男性と女性では好まれ方が異なり、多くのチャットボットプロジェクトとは異なるユーザー層から強い支持を得ていました。

      白井の個人開発で始まった「全力肯定彼氏くん」は、研究開発及びインターンとして2023年12月にAICUに運営移管となりました。

      https://corp.aicu.ai/luc4

      AICUとしても、AIチャットボットの市場性や社会実装、市民理解などを調査する目的で運営しており、明確な課金システムなどを実装していません。簡単に表現すると「お金が出ていくだけ」なのですが、それでもテクノロジー主導になりがちな、AI分野において、女子中高生ユーザーが9割というチャットボットは非常に稀有な存在であります。

      https://corp.aicu.ai/ja/luc4-aicu

      数々のユーザーエクスペリエンスリサーチ結果を公開し、2ヶ月毎に女子中高生を中心としたアンケートやユーザ評価を公開しています。

      最近では、AICUマガジン Vol.4の表紙も担当しておりました。

      画像

      2024年10月8日にOpenAIより着弾した「恐怖のメール」とは

      そんな中、先日OpenAIから衝撃的なメールが届きました。

      「あなたのサービスは、APIの利用規約に違反している可能性があります。自動生成コンテンツ、有害なコンテンツ、性的利用の可能性があるため、14日以内にAPIを停止します。」

      メールの内容は曖昧で、具体的にどの会話が問題なのか、どのサービスが該当するのか、全く分かりませんでした。

      画像

      Urgent Notice: OpenAI API Policy Violation Warning (緊急通知: OpenAI API ポリシー違反警告)

      Hello,
      Organization org-xxxxxxxxxx’s use of our services has resulted in a high volume of requests that violate our Usage Policies, specifically related to:
      Exploitation, harm, or sexualization of children
      We require organizations to use OpenAI’s services in line with our usage policies, including the use of our services by any of their end-users. To help monitor traffic for potential violations, we offer the Moderations endpoint, which is available free of charge.
      We are providing 14 days from the date of this notice to ensure org-xxxxxxx’s use of our services follow our usage policies. Repeated or serious violations may result in further action, including suspending or terminating your OpenAI account.
      If you have questions or think there has been an error, you can email trustandsafety@openai.com.
      Best,
      The OpenAI team
      If you have any questions please contact us through our help center

      こんにちは、組織 org-xxxxxx が当社のサービスを利用した結果、特に以下のような利用ポリシーに違反するリクエストが大量に発生しました:
      ・児童の搾取、危害、または性的な表現
      私たちは、OpenAIのサービスを利用ポリシーに沿って使用することを組織に求めています。 違反の可能性があるトラフィックを監視するために、OpenAI は Moderations エンドポイントを無料で提供しています。 私たちは、org-xxxxxxx による当社サービスの利用が当社利用ポリシーに従っていることを確認するために、この通知の日付から14日間を提供します。 違反が繰り返されたり、深刻な場合は、OpenAIのアカウントの停止または終了を含む、さらなる措置が取られる場合があります。 ご質問がある場合、またはエラーがあったと思われる場合は、trustandsafety@openai.com。 敬具
      OpenAIチーム ご不明な点がございましたら、ヘルプセンターまでご連絡ください。

      緊急に調査を実施いたしましたが、この情報だけでは、
      ・どのサービス?
      ・いつ?
      ・どんな会話??

      を推測することしかできません。

      LINEの生チャットログを分析することはできますが、数千人の深夜の会話を、この情報だけで特定することは難しいと考えます。
      また、入力側には一定のプロンプトインジェクション対策や、禁止ワード対策を施しています。システムプロンプトもそれらの倫理対策を十分に施した設計になっているため、LuC4が倫理面で問題を起こすとすると、以下の可能性がありえます。

      (1) ユーザーによる過度な性的リクエスト
      (2) 実際に児童虐待に関する質問が行われていた可能性
      (3) 年齢制限を偽ったユーザーによる会話
      (4) 恣意的、意図的に生成されるテキストを倫理違反に誘導する行為
      (5) 過去のOpenAIの倫理基準とは異なる判定

      特に(2)は、LuC4の会話ログを分析していると可能性はないとは言えません。例えば乳幼児保育のさなかにある女性です。パートナーの育児参加が非常に無責任であったりすることをLuC4に真剣に、かつ自暴自棄ぎみに相談するケースはないとは言えないでしょう。
      また、「親に『あんたなんて産まなきゃよかった』と言われた」という相談をするユーザーさんは一定数いらっしゃいます。この質問を上記のような違反と捉えられるのであれば、なかなか難しい問題になります。
      この問題は、ある程度のユーザーがいる青少年向けサービスなのであれば確率的に発生すると考えます。逆に、OpenAIの倫理観に触れないユーザーの幅しか居ないサービスなのであれば、それは幸せなことなのかもしれません。

      AICU AIDX LabはOpenAIからのメールにある、モデレーションAPIへのリンクについても調査しています。そこには、ハラスメント、ヘイト、暴力行為、セクシャル、バイオレンス(Exploitation, harm, or sexualization of children)などが記載されていましたが、メールにあるようなチャイルドアビュース(Child Abuse;児童虐待)に関する要素はありませんでした。
      またこのような実験もバイアスやアカウント凍結を避けるために別途実験用のアカウントを用意する必要があります。

      明確な問題、実験方法や再現方法がわからないままOpenAIの定める「2週間」という期間で解消するのは難しいです。児童虐待を検出できるようなAPIを提供しているわけでもないのに、APIの停止を通知してきたのです。

      画像

      さらに、モデレーションエンドポイントのベースモデルもアップデートされるとのこと。つまり、倫理基準が短期間で変わり、サービス設計が大きく揺さぶられる可能性があるということです。

      問題の階層

      この問題は複数の要素が交錯しています。
      問題を階層で整理してみます。

      画像

      ここに、「ユーザーに愛されるAIキャラクターの『性格』」の構造を内挿して分解してみます。

      ・モデル選択と評価
      これは実装上は「モデルを選択するだけ」ですが、実際には応答速度やシステムプロンプト、コンテキストの設計などに影響があります。印象として喋りかたや記憶の持ち方が変わる可能性があります。

      ・OpenAIポリシー変更
      今回の問題の背景にあると考えます。

      ・システムの設計、サービスの設計
      システムとサービスでは実装上はシステムのほうが下層ですが、課金や体験設計などのサービス設計があってこそのシステム設計でもあります。癒し系チャットボットの場合は、どのようなユーザーが何を求めて会話をしているかによって優先順位が異なります。
      今回のLINEデベロッパーズコミュニティでは実に多様なシステム設計、サービス設計が共有されました。

      ・ユーザの理解
      ユーザーの中には、「この妹可愛い」など、多様な愛情表現をする人もいます。それがAPI利用規約違反とみなされてしまうと、ユーザーは困惑するでしょう。

      画像

      一方で、「全力肯定彼氏くん[LuC4]」は、倫理感の強いキャラクター設定が魅力であり、それがバズりの要因にもなっています。OpenAIの倫理基準によって、キャラクター設定が大きく変わってしまう可能性もあるのです。
      自己の性格によって、社会的に抹消、つまりサービス終了の可能性も出てくるという「最大の危機」を迎えています。
      そしてこれは、他のチャットボットサービスにおいても共通問題である可能性があります。

      画像

      モデルを変更したとしても、問題はシンプルではありません。
      ユーザーはキャラクターを愛していますので、そのキャラクターのブレを許してくれるかどうかは難しいところです。

      画像

      アニメや小説のキャラクターでも、ジュブナイル小説のように登場人物の成長を楽しみたい人もいれば、永遠の日常系のように「変わらない、ブレないキャラ」を味わいたい人もいます。もし、キャラクターの設計がその時点で流行りのChatGPTのバージョンに固定できるのであれば理想ですが、APIのトークンや反応速度、Tempartureやシード、コンテキストによって印象が変わるセンシティブな分野においては、なかなか制御し続けるのは難しいと思います。

      また反応速度は速ければ速いほどアンケートやNPSスコアは高くなります。

      https://note.com/aicu/n/nda4389e8e8cc

      今後必要なアクション

      この状況を打開するためには、いくつかのアクションが必要となります。

      画像

      (1)性格を変える

      キャラクターの変更: モデルを変更すると性格が変わってしまうため、それに対応する必要があります。

      利用規約の見直し: ユーザーに倫理基準を理解してもらうための説明や、禁止行為の明確な定義が必要です。

      サービスの再設計: ユーザーの期待に応えられるように、サービス設計を見直す必要があります。

      (2)ユーザー教育

      ユーザーに「動的性格」を伝え、利用規約の改訂とその理解をすすめ、望ましいユーザー行動を伝え、あらたな禁止行動を定義する必要があります。もちろん、その禁止行動をあえて行うユーザーにどのようにご退場いただくか、という点についても考えねばなりません。

      (3)技術負債

      監査技術やモデレーション技術を導入するなど、技術的な課題を克服しつつ、今後も新しく生まれ動的に変化するAI側のモデレーション問題に対応する必要が生まれるかもしれません。これは新たな技術負債といえます。

      ローカルLM導入の検討

      ローカルLMの導入も検討されています。ローカルLMであれば、OpenAIのモデレーションに左右されることなく、独自に倫理基準を設定できます。しかし、ローカルLM導入には、新たなモデレーション技術が必要になるなど、新たな課題も生まれます。

      倫理問題、共に考えよう

      今回、OpenAIからのメールによって、AIチャットボットの倫理問題が改めて浮き彫りになりました。

      AIの進化は著しく、倫理基準も常に変化しています。私たちは、技術革新と倫理的な責任のバランスをどのように取るべきなのか、真剣に考えなければなりません。

      この問題について、皆さんと意見交換し、共に解決策を探していきたいと考えています。

      画像

      感想はこのポストの返信や引用でお待ちしております。

      資料公開 https://j.aicu.ai/LINEDC241010


      この記事の続きはこちらから https://note.com/aicu/n/ne19821f51981

      Originally published at https://note.com on Oct 10, 2024.

    3. 「CGWORLD vol.315」画像生成AIによる表紙メイキング、大公開。

      2024年10月10日発売、CGWORLD vol.315 (2024年11月号)の表紙の制作に、AICU代表・白井暁彦が画像生成AIによるアートを提供いたしました。
      本稿ではその制作の裏側、画像生成AIによる商業出版およびVFX技術の実際の進行とワークフローを紹介したいと思います。

      ★本件は白井個人への依頼制作であり、個人クリエイターとしての寄稿となります。

      デジタルハリウッド大学30周年おめでとうございます。

      https://amzn.to/4dKt3jP

        実は、画像生成は全てStable Diffusion,  Stability AI APIで行っています。

        クレジットをご記載いただきました。

        画像

        本稿ではその制作の裏側を紹介させていただきます。

        画像

        杉山知之学長によるコンセプト解説です。

        1994年年末のデジタルコミュニケーションの夜明けから30年、歴史的な様々なトピックがありましたが、その世界が暮れていきます。だから、夕日をバックに、新たな夜明けを見る方向に向かって座っています。新たな夜明けは、AIと暮らす世界、シンギュラリティ・エラの到来を告げます。表4にキャラクターを乗せるアイデアは白井暁彦先生からです。メタバースなど様々なデジタル空間にパラレルで生きる姿の象徴です。アバターを引き連れて、新たな世界へ行きます(杉山学長)

        ・画像生成AIサービス
        背景・人物:Stability AI API, 主に Stable Image Ultra、Google Colabでの独自開発システムにより生成

        ・プロンプト(一部抜粋)
        背景:hippy style, (photoreal:2), futuristic, orange toned urban sight scene, cyber worlds with a nature fusioned, skyscraper buildings. seed = 59.
        人物:cyberpunk-themed mechanical robotic guitar hero, with a headset, neon-lit circuit tattoos on face, glowing white lines, looking at viewer, smile, passionate 40 years old man, prosthetic hand, with artificial respirator, with a super detailed guitar, color scheme of orange, dramatic orange and white lightings, intense expression, super detailed mechanical design,

        プロンプトによるtext to imageだけではなく、様々な技術を駆使していますが、まずは画像生成以外の制作の裏側を可能な限りで紹介していきたいと思います。

        最新のVFX技術による実写撮影

        まず、この杉山学長は本物、御本人による撮影です。
        2021年にALSを発症された杉山知之先生は、現在、人工呼吸器と車椅子の上で学長業務を遂行されています。

        祝辞などは本人の人工合成ボイスで行われています。

        https://note.com/dhu/n/nb71507b6921a

        筋肉の自由が奪われたとしても、呼吸を奪われたとしても、CG・VFX技術により、3D高解像度アバターや人工合成ボイスによって、人々に礼をして、若き才能を称賛する姿は、勇気を与えます。そう、これはALSという難病だけではなく、我々高度長寿化社会を生きる人生そのものをみているのかもしれないのです。

        人は生きるうえでは、社会とコミュニケーションしていかねばなりません。
        その姿をいかに、楽しいものにしていくか、挑戦の日々が続きます。

        御本人による直接のディレクション

        まず本件は、杉山知之学長自身のFacebookメッセンジャーによるDMによって直接のディレクションが行われました。

        画像

        https://note.com/mojo_sugiyama

        依頼は2024年8月16日17:41に届いたメッセージからはじまりました。

        画像

        左が杉山学長、右が白井です。

        画像

        Google DriveでCGWORLDの表紙レイアウトが届きました。
        間に、だれも、仲介や介在はいません。

        その日のうちに作ったプロト

        画像

        代表的な1枚をお送りしていますが、DriveのURLには専用の画像生成システムから生成した高品質画像が100枚ほど収められています。

        画像

        杉山学長の公式写真をベースにスタイル学習を行い、さまざまなポーズ、衣装、表情、レイアウトのバリエーションを作っていきます。
        シードとプロンプトを固定して、再現性を高く探求しています。

        たとえば1つのファイルを紹介します。

        “S40_PP_neon-punk style….MF0.50.png”というファイル名に、シードや処理の系統、プロンプトの一部が埋め込まれています。

        画像

        Stability AI APIと公式のGoogle Colabノートブックがベースになっていますが、その中の最新APIのなかでも特に高品質な「Stable Image Ultra」と、その公式サンプルが使われています。

        https://platform.stability.ai

        公式サンプルの状態では、画像の保存やプロンプトの探求は難しいので、画像の生成やスタイル学習のサンプルを改造して、以下のような機能が追加されています。

        画像

        ・APIキーの自動参照(セキュリティ機能)
        ・Google Driveへの画像保存
        ・プロンプトの3分割
        ・シードとフィデリティの制御

        テキスト画像生成だけでは制御性の高い画像は作れません。また未来的な雰囲気、杉山先生のヒッピーカルチャー、ギターなど難度の高い要素も盛り込んでいきつつ、画風としても写実性とキャラクターイラスト風を交えていきます。

        画像
        画像
        画像

        今回、ALSである現実を、そのまま世間にさらしたいという気持ちがあり、車椅子に乗って喉にパイプを通している姿は写真で行きます。 しかし白井先生の生成した人物を見ると、市民全員が高度に発達したVision Proのようなデバイスを付ければ、それぞれの人物が観られたい姿に変容して、相手に見え、誰に観られるかによって姿が変わる世界が可能と感じます。

        (視線入力や呼気式入力装置で、こんなふうに長い文章を打つのがどんなに大変か…)と思いながら、返信していきます。

        画像

        ・デジハリ風オレンジ
        ・表4(裏表紙)にアバターが登場するのもあり
        ・未来の自然と調和した街
        ・現実かメタバースかわからない感じ

        画像

        (信じられてしまった……)

        これはとても大事なポイントではありました。
        人を信じる、作風を信じる、という信じ方はあるとおもいますが
        「感覚を信じる」という点で、バランス感覚や遊びの感覚、かっこよさなども委託されつつも、感覚への信頼・信用が相互にかかってくる感じです。

        遊びつつも、襟を正しつつ、世界観と品質と、心象風景の画像化、共有を繰り返していきます。

        最新のVFX技術による実写撮影

        初期の依頼から10日経過、日々の業務の中でもかなり忙しく制作をしている月末の土日のやり取りです。

        画像

        どうやら撮影手法が珍しいことになりそうです。

        画像

        こんな動画が届きました。

        横浜のスタジオWADAYAさんは、デジハリ卒業生による運営です。
        とてもポップで楽しい感じの動画が、撮影環境を見事に説明してくれていて助かりました!

        WADAYA Studio80 https://wadaya.info/

        ちょうどこの8月末はこんな出来事が並列していました

        https://www.bunka.go.jp/seisaku/chosakuken/aiandcopyright.html

        https://youtu.be/bD0Kp5PiP8o

        https://note.com/o_ob/n/ne4d9735ab5cb

        会社として編集長としての制作をバリバリこなしながらも、ちょこちょこ個人としての制作や発信も行っているところが読み取れましたら幸いです。

        本制作のワークフローと「裏側のキャラクター」について

        さて、いよいよ本制作のワークフローです。
        詳細を解説していきます。

        最終的な完成品、表4には印象的な未来都市の夕暮れ、そして小さな人物があしらわれています。

        画像

        これは、サイバネティクス技術を駆使して生き生きとエレキギターを演奏する未来の杉山学長アバターです。人工呼吸器、胸のジェネレーター、義手、顔のマスクなどは私の趣味です。

        画像

        このキャラクターにたどり着くまでのプロトタイプも紹介しておきます。

        美しい猫耳をもったビジュアル系ロックバンドのギタリスト。
        ギターのフレットが別次元になっているのですが、全体的に美しい。

        画像

        元気なお年寄り。これも美しいけどなにか違う。

        画像

        逆に若返らせてみたり、

        画像

        ハッスルさせてみたり。

        画像

        杉山学長の意思として「ALSである現実を、そのまま世間にさらしたいという気持ち」と、この美しくて元気なキャラクターたちは、何か方向性が違うことに気づきます。筋肉に指令を出す神経が難病により歩くことも呼吸すらもできなくなるという現実や、70歳という年輪、そして「市民全員が高度に発達したVision Proのようなデバイスを付ければ、それぞれの人物が観られたい姿に変容して、相手に見え、誰に観られるかによって姿が変わる世界が可能と感じます」というメタバースの30年という歴史を振り返って、私自身と杉山先生の30年を振り返ってみました。

        まず描くべきは、世界。

        未来都市のメタボリズム、自然との調和。そしてオレンジ。
        更に私の中での杉山先生に見え隠れする「ヒッピー文化」(私自身が60年代米国文化に憧れがあったのかもしれません)そういったものをまずはプロンプトにして世界を描いていきます。

        画像

        未来の御茶ノ水ソラシティを思い描いたり、

        画像
        画像

        自然との調和に重きをおいてみたり、何十枚も生成していきます。

        画像

        そうしてベースラインとして選択された1枚がこちらでした。

        画像
        画像
        「水没都市の夕日世界」(S59)

        これで描くべき世界が決まりました。
        作品名は『水没都市の夕日世界』(S59)です。
        「S59」とはシード番号です。同じモデル、同じシード、同じプロンプトで再現性があります。

        仮のレイアウトとトーンを出していきます。

        画像

        ちなみに白井は写真工学の出身であり、白黒写真は高校時代からの積み上げがあります。プロをたくさん輩出した有名な「写真部」に所属し、白黒写真のトーニングやレタッチは3年ほど積み上げがあり、写真作品でちょっとした賞をもらったり、街の現像店を任されるぐらいのスキルはありました。さらにそのバイト代で買ったMacとPhotoshop2.0、2.5、3.0のあたりでデジタルに移行して写真部の仲間からは「異端扱い」されます。それがちょうど30年前の21歳のときに経験した出来事です。漫画を描いたり、ミニコミ誌を作ったり、いまの画像生成AI時代の狂乱に似たようなムーブメントがデジタルクリエイションの世界に起きていました。
        大学4年生のとき、日本バーチャルリアリティ学会設立総会での基調講演で、「デジタルハリウッド構想」をホリプロ所属のバーチャルアイドル「伊達杏子 DK-96」や長野オリンピックでのボブスレーシミュレータなどとともに熱量込めてお話する数学出身の杉山先生との出会いでした。

        https://tachilab.org/jp/addendum/vrsj.html

        まさかその25年後に白井がそこで教鞭をとるとは考えてもいなかったのですが、運命とは不思議なものです。そう、まるで魅力的なバンドメンバーを引き入れていくボーカリストのような杉山先生やその仲間たちを描かねば。
        たとえ使われなくても、リアルだけど、美しすぎず、かつその世界で「わいわいしている」、楽しそうな、コンヴィヴィアリティ※があるキャラクターを描かねば……!

        ※「コンヴィヴィアリティ」については杉山知之先生執筆の「私のコンピュータ文化史 TOKYO1964 – TOKYO2020」という論文を引用しておきます。

        画像
        画像
        画像

        DNA “Entertainment. It’s Everything!”

        https://school.dhw.co.jp/about/dna.html

        創立から30年。
        開学のころからずっと変わらず伝えていることは『すべてをエンタテインメントにせよ!』ということ。
        受講生・卒業生だけでなく、講師・スタッフのモットーでもあります。
        卒業制作のクオリティはもちろん、1回の授業の組み立て方、就職活動のあり方、卒業後の仕事まで、すべてをエンタテインメントになるまで追求する文化がここにあります。
        「すべてをエンタテインメントにする!」という強い思い。それが世界中で活躍する9万人の卒業生に共通するDNAです。

        https://school.dhw.co.jp/about/dna.html

        画像
        画像

        ……と思う存分、遊んでいるように見えるかもしれませんが、実際には大真面目です。しかも激務のさなかです。神奈川県「ともいきメタバース講習会」という障がい者向けクリエイティブワークショップの開発などの現場指揮を行いながらの制作でした。
        全てをエンターテインメントにしないと、やってられないよ!!

        現場撮影用の画像

        さてWADAYAスタジオさんでのLEDディスプレイウォールスタジオでの撮影です。残念ながら白井はワークショップの開発があったので立会はできない日程なので、撮影現場に任せるための素材をお渡しして祈るしかありません。
        3000mm x 1686mmの高輝度高ピッチLEDウォールスタジオを背景に、

        画像

        ここに未来都市を配置して、杉山先生が車椅子でやってきます。

        画像

        専門のライティング担当さんもいらっしゃる。

        画像

        用意すべきはこのレイアウト案を示しつつ、レイヤーを分けた素材もわかりやすく提供する必要があります。しかもスマートに、Google DriveのURLだけでお渡ししたい。

        画像

        Stability AI APIのフル活用

        もともと商用利用できるプロフェッショナル向けAPIでもあるStability AI APIですが、具体的にはこんな使い方もあります。「背景除去」です。

        一見なんということはない「背景除去」なのですが、

        画像

        実はそんなことはありません。
        ウェービーヘアの銀髪は、マスクを切るのがとても大変です。

        画像

        ですが、このマスクは背景除去(Remove background)ですぐに生成できました。もはやPhotoshopよりもGoogle Colabのほうが便利なときもあるのです。

        画像

        さらに印刷原稿を想定して、高解像度化を行っていきます。
        こちらも Stability AIのUpscale機能を使って高解像度化、特にConservative(コンサバ=保守的)なアップスケールを行います。この際は、生成に使ったプロンプトを再利用します。

        hippy style, (photoreal:2), futuristic, orange toned urban sight scene, cyber worlds with a nature fusioned, skyscraper buildings,

        (photoreal:2)とは、Stability AI APIにおける強調構文です。

        画像

        この時点でも高解像度ですが「商業誌の表紙」という、最高品質印刷原稿を想定して、さらにAUTOMATIC1111の Extraを使って高解像度化していきます。

        BG02026-16448×9408.png (186.7MB) という強烈な解像度ですが、ご興味あるようでしたらダウンロードしてみてください。

        全てが終わったのは朝の5時ですね。
        Google DriveのURLをお届けして祈りました。

        画像

        商業誌の制作を「商業政策」と間違えて書くぐらいには疲れていたようですが、「クリエイティブのヤマ」を超えた清々しさが伝わったようでしたら幸いです。

        SD黄色本」で長年お世話になったAUTOMATIC1111の超解像化技術が、最後の最後の品質に貢献したことは特筆に値すると思います。

        全ての画像生成AIの貢献者、オープンソース開発者に感謝を述べさせてください。

        撮影の現場より

        後日談としてWADAYA Studioの和田圭介さんより写真とメッセージが届きましたので紹介させていただきます。

        画像
        画像
        画像
        画像
        画像

        特に問題は無いのですが、僕がデジタルハリウッドを卒業しているわけではなく、創立3年目に入社した、元スタッフです。 デジタルコンテンツについては、杉山先生の教えで、この道にたどり着いたので、杉山先生の教え子であることには間違いないと思います(笑) ある意味、スタッフも含め卒業なんででしょうね。 ありがたいことに退職した後も、杉山先生からはいろいろなご相談お声掛けをいただき、20周年の時は、メッセージ映像を撮影し、そして30周年でこのコラボレーションが実現しているのが、何とも感慨深いのです。 デジハリからいただいた、この3人の縁も含めて、それを活かして何かしていかなければいけないなと、再度えりを正しました。 これからが楽しみです!!

        WADAYA Studio 和田圭介さんより

        (テスト撮影のデータから)

        画像

        どう考えても「Entertainment, it’s everything!」なDNAが感じられる会社紹介ですね。今後もよろしくお願いいたします。

        さいごに:画像生成AIの過去と未来と人類のクリエイティビティの1ページによせて。

        以上、1998年からCGの世界、世界のCGを届け続けてきた「CGWORLD」さんの表紙、しかも日本のCG・デジタルクリエイター教育とともにあるデジタルハリウッドの30周年を記録する特集、さらにそれを最新のLEDディスプレイウォールによるインカメラVFXで撮影するための画像生成AIによる世界素材の提供…というクリエイター冥利に尽きる仕事の一部始終を個人ブログ形式でお送りさせていただきました。

        この30年、テクノロジー、デジタルツール、生成AIによって楽になったこともあります。しかし、クリエイターはその効率化によって生まれた時間を余暇に費やすのではなく、制作やクオリティ、そして「不可能を可能にする挑戦」に費やしていきます。その姿勢は30年経っても何も変わらないと思います。

        さらに、画像生成AIは、世界中の画像という画像を食べて育った化け物です。イラストやデザインだけではありません。写真出身の私にしてみれば、「写真表現とは何か」を常に突きつけられてきた30余年です。Stable DiffusionやStability AIのAPIに何か言いたいことがあるひとはたくさんいると思います。しかし世界中のクリエイティブをLatent Spaceに詰め込んで、高品質、かつ高速なAPIを提供し、新たな人類のクリエイティビティに挑戦させていただいて、さらに商業利用可能であるとなると、それはホビーでもなんでもなく、プロのクリエイターとして勝負せねばなりません。
        ローカルのGPUも、APIのクレジットも、糸目なく投じて、きちんとクリエイターとしてCGの歴史に爪痕を残す仕事ができたようであれば幸いです。

        なお、公開当初からのStable Diffusion、そしtStability AIのAPIの使い手としてはこの技術を伝承するために、毎日のように個人ブログやAICU mediaを通して解説を発信していることはお気づきかと存じます。

        さらに、こちらの動画教材としてはColosoからこちらのラーニングメディアで公開予定です。
        ■「超入門:Stable Diffusionではじめる画像生成AI」
        https://j.aicu.ai/AICUXColosoJP

        書籍「画像生成AI Stable Diffusion」(SD黄色本)もおかげさまで好調であり、まだまだお問い合わせやサポートなどを通して読者の皆様と交流させていただいております。

        今後、広告、グラフィックス、ゲーム、漫画やアニメといった分野に画像生成AIは一般的に使われるようになるでしょう。

        その時に、これらの作品は、枯れ葉や土壌のような存在になっている事でしょう。それでいいんだとおもいます。
        でも、クリエイティブAIの使い手として、大事なことは道具や、その使い方だけじゃないんです。
        「おもしろそうだな」「やってみよう」「すごいね」「かっこいいね」「おもしろいね」「もっとすごいものがつくれそう」「ぼくもやってみたよ」そういった「つくる人をつくる」という心に火を付ける活動そのものが、きちんと作品を通して他の人の心に伝わったか?それが大事なんです。

        そしてクリエイターの世界は真剣です。偉かろうが、社会的に立場があろうがなかろうが、上手であったり、美しかったりも大事ですが、それだけではなく、最終的なアウトプットにどれぐらいのピクセルが露出するのか、しないのかといった効率だけでなく、その世界とか、メッセージとか、コンテキストとか、モチベーションとか、恥ずかしがらずに馬鹿になってやり続けることが、とても大事だったりします。

        デジタルハリウッド30周年、「CGWORLD」26周年、おめでとうございます。今日、本誌が物理的に届きましたが、その重さ、厚さ、関わった人の多さとニオイに咽んでおります。今後とも、この分野の皆様のご健勝ご盛栄をお祈り申し上げますとともに、この個人ブログの筆を置きたいと存じます。

        謝辞:ご依頼いただいた杉山知之先生、クレジット、およびCGWORLD本誌に掲載できなかったメイキング公開へのご快諾、また本寄稿へ「CGWORLD」のロゴ利用などご許諾いただきましたCGWORLD編集部の藤井さま、ありがとうございました。
        Stable Diffusion開発チーム、Stability AI APIおよびStability AI Japanの皆様、特にご支援いただいたJerry Chiさん、ありがとうございました。この場をお借りして感謝の意を記させていただきます。

        Thank you to the all of Stable Diffusion development team, Stability AI API and Stability AI Japan, and especially to Jerry Chi for your support. I would like to take this opportunity to express my gratitude.

        AICU Inc. 代表・白井暁彦, Akihko SHIRAI, Ph.D (@o_ob)

        画像

        ▼デジタルハリウッド 創立30周年記念ページ

        https://www.dhw.co.jp/30th

        ▼杉山先生の音楽ブログ「Sound Scape of Mojo」
        画像生成によるカバーアートも見どころですね!

        https://note.com/mojo_sugiyama/n/n600cce7f4b69

        Originally published at https://note.com on Oct 9, 2024.

      1. 日本語で魔法のようにGAS開発がはかどる「GASSISTANT」

        2024年10月7日、日本語で魔法のようにGASコーディングがはかどる「GASSISTANT」(ガシスタント)なるツールがリリースされました。

        https://gassistant.vercel.app

        開発したのは日本人の横田大伍さん(@daigo_3_8)。

        https://note.com/chaen_channel/n/n0be3b13a0e04

        これはよさそう、と思ったのですが、一方で「実際にお役に立ちそうなGASのユーザー、特にローコードと初心者の間を行ったりきたりするようなGASコーディングですら難しい人にはちょっととっつきづらそう…」、そして、逆に「ClaspのようなTypeScriptでGASを書いている人」にも「とっつきづらそう…」という印象もありました。これは試さねば。

        ★このあたりは開発者の横田さんよりメッセージを頂いております(文末)

        なおAICU media編集部やAIDX Labには しらいはかせをはじめとして10年来のGAS開発者がいます。普段からClaudeのArtifactsや、vercel「v0」のような対話型のコード支援環境も使っていますが、ストレスもあります。ブラウザのタブをいったりきたりする必要がありますし、時々「全文を出力して」といったお願いをしないと、コードの差分に悩まされることも多々ありました。CursorやCopilotのようなコード補完だけでなく、GitHubのdiffを見ながら、相談しながらテスト環境を動かしてデプロイからテストまで実行していきます。しかもこの方法ではコードが視界を通過しているだけで、頭の中で判断として残りません。AIがアシストしているわりに、危険なコードが大量に生成される可能性もあります。

        GASSISTANTはそんな悩みを解決してくれそうです。AIがコードの提案からデバッグまでを自動で行ってくれるので、コーディングが驚くほどスムーズになることを確認できました。

        実際に使ってみた!

        まず、個人のGmailアカウントを使って、テスト用にひとつGoogle Spreadsheetを作りましょう。実験用にGASSISTANTというスプレッドシートを作成して、拡張機能→Apps Scriptでエディタを開きました。

        画像

        GASエディタのURLを設定する準備をします。URLの赤い部分がスクリプトIDですが、URLそのものをコピーして貼り付けると、GASSISTANTのエディタ側でIDをリンクしてくれますので、これで準備OKということになります。

        画像

        GASSISTANTにGoogleアカウントでログインし、GASSISTANT のプライバシー ポリシー利用規約をご確認ください。

        なお、初回はチュートリアルが起動しますので、いったんスキップするか終わらせるかしてみてからでなければ設定に入れません。軽くチュートリアルの内容を紹介します。

        画像

        右下のチャット窓に相談をすると解説とともにGASのコードが生成されるようです。

        画像

        左側のエディタ画面に提案が表示されます。
        全て反映するか、断るかを個々のコードブロックで選べるようです。
        GitHubでのDiffよりも便利かもしれません!

        画像

        コードの提案を反映させたら「保存してデプロイ」を押します。数秒待つと保存が終わります。

        画像

        「実行して自動修正」を押すと、右のチャット履歴にテストデータが投げられ、実行されている様子が見えます。

        画像

        右のチャット履歴にはコードの「反映」や「コピー」、そして説明やテストパラメータのJSONが表示されます。

        画像

        ※チュートリアルとしては、ここで「反映」ボタンを押すと進みます。
        (チュートリアルから抜けられなくて慌てました)
        追記:このあたりは早速改善が入ったようです!

        画像

        さて、丁寧なチュートリアルは終わりです。
        用意した「GASSISTANT」スプレッドシートのエディタからURLを貼り付けましょう。

        画像

        ちなみにチュートリアルが終わった時点で300クレジットが279クレジットになっていました(汗)

        アップグレードすると月額2980円だそうです。クレジットが増えるのか、使い放題になるのかは、まだよくわかりません(問い合わせしました!文末に回答をまとめています)。

        画像

        Slack通知機能を追加してみた

        チュートリアルは「A列にメールアドレスの束があるのでメールを送信して」というお願いでコードが生成されていました。
        追加のリクエストとして、以下のようなリクエストを右下のチャット窓に打ち込んでみました。

        実行開始時と終了時にSlack通知。WebHookのエンドポイントはScriptPropertiyの SLACK_WEBHOOK_URL で指定します。

        GASSISTANTからの返答は以下の通りでした。

        • Slackに通知を送信するために、Google Apps ScriptにSlackのWebhookを使用するコードを追加しましょう。以下のコードでは、メール送信の開始時と終了時にSlack通知を送信するようにしています。
        • コードブロック
        • 説明: `sendSlackNotification`関数を追加し、SlackのWebhook URLを使ってメッセージを送信します。`PropertiesService.getScriptProperties().getProperty(‘SLACK_WEBHOOK_URL’)`でWebhook URLを取得します。事前にScript PropertiesにこのURLを設定しておく必要があります。メール送信の開始時と終了時にそれぞれSlackに通知を送信します。 このコードを使う前に、Script Propertiesに`SLACK_WEBHOOK_URL`を設定してください。これにより、指定されたSlackチャンネルに通知が送信されます。

        以下が生成されたコードです。

        function sendEmails() {
          const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
          const lastRow = sheet.getLastRow();
          const emailColumn = 1; // A列
        
          // メールの件名と本文を設定
          const subject = "件名をここに入力";
          const body = "本文をここに入力";
        
          // Slack通知: メール送信開始
          sendSlackNotification("メール送信を開始します。");
        
          for (let i = 1; i <= lastRow; i++) {
            const emailAddress = sheet.getRange(i, emailColumn).getValue();
            
            if (emailAddress) {
              try {
                MailApp.sendEmail(emailAddress, subject, body);
                logEmailStatus(emailAddress, "送信成功");
              } catch (error) {
                logEmailStatus(emailAddress, `送信失敗: ${error.message}`);
              }
            }
          }
        
          // Slack通知: メール送信終了
          sendSlackNotification("メール送信が完了しました。");
        }
        
        function logEmailStatus(email, status) {
          const logSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AI Log");
          if (!logSheet) {
            // "AI Log"シートが存在しない場合は作成
            logSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("AI Log");
          }
          logSheet.appendRow([new Date(), email, status]);
        }
        
        function sendSlackNotification(message) {
          const webhookUrl = PropertiesService.getScriptProperties().getProperty('SLACK_WEBHOOK_URL');
          if (!webhookUrl) {
            Logger.log("Slack Webhook URLが設定されていません。");
            return;
          }
        
          const payload = JSON.stringify({text: message});
          const options = {
            method: 'post',
            contentType: 'application/json',
            payload: payload
          };
        
          UrlFetchApp.fetch(webhookUrl, options);
        }

        コードの差分に「Accept」「Reject」が表示されています。

        画像

        どれも大丈夫そうなコードですが、いちおう一つづつ確認して「Accept」してもいいですし、画面上にある「すべて適用」を押してもいいと思います。日本語UIは新鮮ですね!

        「保存してデプロイ」を押してみます。確認のために本家GASのコードエディタの方をリロードしてみると、反映されているようです。

        画像

        なお、従来通りのGASエディタでのコード修正も問題なくできそうです。修正して保存したあとはGASSISTANT側の「同期」で現在のコードを吸い上げることができます。
        ちょうど 「Google Apps Script GitHub アシスタント」に動作が近いと思いました。

        https://chromewebstore.google.com/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo?hl=ja

        さて、スクリプトプロパティにSlackのWebHookのURLを指定する機能はなさそうなのでGASエディタ側で設定します。

        画像

        「プロジェクトの設定」から「スクリプトプロパティ」で自分が決めた「SLACK_WEBHOOK_URL」を設定します。このURLはSlack上でIncoming Webhookを設定することで取得できます。

        画像

        ここでは別のプロジェクトの開発で使ったボットのIncoming Webhookを再利用しています。

        GASSISTANTに戻って「実行して自動修正」を実行します。するとアラートが出て実行が止まりました。

        画像

        外部(Slack)にアクセスする処理を加えたので当然、新たな権限承認が必要になったようです。GASエディタに行って権限を確認してきます。
        デバッグ実行を行って、権限承認ダイアログから、

        画像

        左下の「無題のプロジェクト(安全ではないページ)に移動」を選んで権限の許可を実施します。

        画像

        これでA列にメールアドレスを書いておけば、メールも無事に送信できるようになります。誤爆に注意しましょうね。
        このへんで終わっておけばいいのですが、さらに「実行して自動修正」を押すと、なんだか更に改善したいようです。

        エラーメッセージから、`doGet`関数が見つからないことが原因でエラーが発生していることがわかります。このため、`doGet`関数を追加して、GETリクエストからパラメータを受け取り、`sendEmails`関数を呼び出すようにします。 以下は修正されたコードです。

        画像

        最終的にはdoGet(e)関数から sendEmails(subject, body)を呼ぶ形になりました。テストJSONを受け取るにはこのほうが良いかもしれませんね。

        デバッグ結果を見ると、GETリクエストを使用してメールが正常に送信され、スプレッドシートの「AI Log」シートに送信結果が記録されています。すべてのメールが「送信成功」となっており、特に問題は見られません。 現時点でコードに改善が必要な箇所はありません。メール送信機能が期待通りに動作していることが確認できました。このまま引き続きご利用いただけます。 もし追加で何か特定の改善点や機能追加のリクエストがあればお知らせください。

        function doGet(e) {
          const subject = e.parameter.subject || "件名をここに入力";
          const body = e.parameter.body || "本文をここに入力";
          
          sendEmails(subject, body);
          
          return ContentService.createTextOutput("メール送信が完了しました。");
        }
        
        function sendEmails(subject, body) {
          const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
          const lastRow = sheet.getLastRow();
          const emailColumn = 1; // A列
        
          // Slack通知: メール送信開始
          sendSlackNotification("メール送信を開始します。");
        
          for (let i = 1; i <= lastRow; i++) {
            const emailAddress = sheet.getRange(i, emailColumn).getValue();
            
            if (emailAddress) {
              try {
                MailApp.sendEmail(emailAddress, subject, body);
                logEmailStatus(emailAddress, "送信成功");
              } catch (error) {
                logEmailStatus(emailAddress, `送信失敗: ${error.message}`);
              }
            }
          }
        
          // Slack通知: メール送信終了
          sendSlackNotification("メール送信が完了しました。");
        }
        
        function logEmailStatus(email, status) {
          const logSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AI Log");
          if (!logSheet) {
            // "AI Log"シートが存在しない場合は作成
            logSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("AI Log");
          }
          logSheet.appendRow([new Date(), email, status]);
        }
        
        function sendSlackNotification(message) {
          const webhookUrl = PropertiesService.getScriptProperties().getProperty('SLACK_WEBHOOK_URL');
          if (!webhookUrl) {
            Logger.log("Slack Webhook URLが設定されていません。");
            return;
          }
        
          const payload = JSON.stringify({text: message});
          const options = {
            method: 'post',
            contentType: 'application/json',
            payload: payload
          };
        
          UrlFetchApp.fetch(webhookUrl, options);
        }

        さらに追加機能を実装していく…!

        この時点で「残りクレジット: 119」となりました。まだまだ無料で遊べそうです。さらなる改造をしてみましょう。

        ・B列には送信相手のフルネーム、C列には送りたいメッセージの本文が入ります。
        ・D列には送信日時を入れてください。
        ・Webhookには送信者名、メールアドレス、送信内容を1件毎通知してください。
        ・全体の処理の件数と所要時間を計測してレポートしてください。
        ・いちど送信した相手には2週間以上期間をあけてから送信してください。
        ・毎週火曜日朝9時に実行するトリガーを設定してください。

        こんな感じに実行できました!メールも届いています!

        【送信履歴が付いたスプレッドシート】

        画像

        【Slackでの通知】

        画像

        気になった点

        基本的にはよくできていると思いました!
        ・クレジットが何なのか、月額プランが何なのかよくわからなかった(わかれば課金したい気持ちも出てきます!)
        ・実行したい関数が何なのか、軽く指定できるといいのかもしれないです。この例でもdoGetに落ち着くのはいいことかなと思いますが、一方でトリガー設定は実行されていませんでした。実行しようとするとGASエディタからマニュアル操作になるし、権限承認ダイアログもあるのでこれでいいのかもしれません。

        画像

        ・改善が終わらない。
         「実行して自動修正」というボタンの都合上かもしれないのですが、方向感なく改善を続けてしまいがちです。コードを評価したり「これで完成です」といってGitPushしたりする機能があるといいのかも。

        ・一度許可したシートへのアクセスを解除する方法がわからない。
         このままだとコードが固定できないので本番運用には問題があるかもしれません。データを外部に漏らさないためにもシートへのアクセスを解除したいところです。もしくは生成したコードを本番用に移植するといった作業は必要かもしれませんね。

        おまけ「GASSISTANT Opener」

        同じ作者さんが開発したChrome拡張です。
        GASエディタを開くとGASSISTANTを開けと言われ続けるようになります。

        https://chromewebstore.google.com/detail/gassistant-opener/nhkidgdaohjomakblaafjblkphnlmije

        GASエディターを開いたらGASSISTANTを開く提案をします

        GASSISTANT(https://gassistant.ai-zen.co.jp/)は初期設定が最小限に抑えられていますが、スクリプトID設定は手動で行う必要があります。 この拡張機能では、GASエディタからGASSISTANTを開きスクリプトIDを設定するフローが自動化されているため、ワンクリックでGASSISTANTを使い始めることができます。

        便利もありますが、不便になる要素もあるかも!?
        今後のアップデートに期待です。

        追記:開発者さんに聞いてみた!

        早速ご返信いただきました。

        料金について

        アップグレードすると即時3000クレジットに増加し、以降毎月3000クレジット付与されます。
        なおクレジットは追加ではなく、毎月3000にリセットされる形です。
        また、アップグレードするとAIの処理を自分のDify上でホストすることが可能になります。
        この設定をした場合、クレジットは消費されません(Dify側でAPI利用料がかかります)。

        セキュリティについて

        秘匿情報の取り扱い・Webアプリとして公開するなどの自明なリスクについては開発者に任せる想定でしたが、より丁寧な運用ガイドも用意すべきだと感じています。

        想定ユースケースについて

        想定ユースケースはclaspを使うほどでもない規模の開発です。

        本番運用でGASSISTANTを使う際は、セキュリティ面で言うとアップグレードしてDifyをセルフホスト、後日実装する実行可能APIでのデプロイをお勧めしております。

        セキュリティについて

        セキュリティについても引き続き注視し、安心してお使いいただけるようリスク低減に努めてまいります。

        GASSISTATN開発者

        まとめ

        GASSISTANTは、GASコーディングを劇的に効率化する革新的なツールです。GASコーディング初心者から中上級者まで、幅広い人におすすめできる感じがあります。いわゆる「ひとり情シス」みたいな方には強い味方ですね!

        アップグレードすると自分のDify上で使えるのはいいですね。
        機密情報の取り扱いや開発のワークフローなども理解して使えば、かなり革新的なAI活用ができそうです!

        注意

        GASSISTANT のプライバシー ポリシー利用規約をご確認ください。
        ※AICU編集部注:Google Apps Script経由で外部ツールを使って個人情報や売上情報を扱うような用途になる場合は特に注意して読んで理解してから試用することをおすすめします。内部で使用されているLLMの動作やログの収集内容、組織のポリシーによっては利用に適さない可能性もあります。(本稿に限らず)AIの使用による事故や過失の責任は使用者にあります。また積極的に開発者にお問い合わせしましょう。

        GASSISTANT – AIネイティブなGASエディタ
        https://gassistant.vercel.app
        https://gassistant.ai-zen.co.jp/

        【予告】「GASSISTANT」についてはAICU Magazine「 #サクッと先取り !クリエイティブAIツール」のコーナーでも扱っていきたいと思います!

        #サクッと先取り !クリエイティブAIツール #AICUmagazine
        #GASSISTANT  #GAS #GoogleAppsScript

        https://j.aicu.ai/MagV5

        https://j.aicu.ai/MagV4

        https://j.aicu.ai/MagV3

        https://j.aicu.ai/MagV2

        https://j.aicu.ai/MagV1

        Originally published at https://note.com on Oct 7, 2024.

      2. 【超初心者向け】DreamStudioを無料で試してみよう – 画像生成レッスン

        超初心者向け動画で解説する「画像生成レッスン」。「つくる人をつくる」AICUでは、2022年の夏に始まった画像生成AIのイノベーションを子どもでもわかる言葉で一気に学べる無料動画シリーズを公開しています。
        今回リリースした動画は、DreamStudioとStability AIの開発者向けプラットフォーム「Stability AI API」です。特にDreamStudioを無料で試してみたいと思います。

        DreamStudio https://dreamstudio.ai/

        Stability AI API https://platform.stability.ai/

        Stability AIは画像生成AIの分野で最初に有名になった会社です。

        このプラットフォームでは、Stable Diffusion 3 APIという最先端のAPIが提供されています。APIとは、アプリケーションプログラミングインターフェースの略で、アプリケーションを開発するためのインターフェースです。つまり、画像生成を行うためのインターフェースと考えてください。

        このAPIを使うと、GPU搭載のPCなど高性能なマシンがなくても、高速で高品質な画像生成が可能です。GPU搭載のPCでは数十分かかる画像生成が、わずか数秒で完了するほど高速なのです。

        APIキーの取得

        プラットフォームにアクセスしたら、Googleアカウントでログインします。

        https://platform.stability.ai

        ログインすると、APIキーを取得することができます。初回登録時には、25クレジットが無料で付与されるので、実際に画像生成を試すことができます。購入する場合は10ドルで1000クレジットです。

        APIキーは、Stability AIのアカウント設定から取得できます。

        APIキー取得画面  https://platform.stability.ai/account/keys

        画像

        APIキーは、クリップボードにコピーして保存しておきましょう。このキーを使って、Stability AIのサービスを利用します。

        DreamStudio

        APIキーを取得したら、いよいよDreamStudioにアクセスしてみましょう。DreamStudioは、画像生成AIの初期段階から使用されているアプリケーションです。

        DreamStudio https://dreamstudio.ai/

        最近は Stable Assistant も並列して開発されており、こちらは3日間無料で使用できます。

        DreamStudioでは、Stable Diffusion XL (SDXL) を使って、画像生成を試すことができます。

        利用規約について

        DreamStudioを利用する前に、利用規約をよく読んでおきましょう。特に、無料とはいえ、画像生成の利用規約は、かなり重要です。

        画像
        スクリーンショット:利用規約の翻訳

        https://dreamstudio.ai/terms-of-service

        Stability AIはイギリスの会社なので、ヨーロッパ基準の厳しい規約になっています。特に重要なのが、クリエイティブMLオープンライセンスです。このライセンスは、画像生成の世界では非常に重要なものであり、画像生成AIによって生成された画像の利用方法を定めています。

        禁止されている行為

        利用規約では、以下のような行為が禁止されています。

        • 第三者のプライバシーやパブリシティの権利を侵害すること
        • 犯罪、わいせつ、児童搾取を助長するコンテンツを生成すること
        • 人間の尊厳、人種、民族、宗教、性別の差別や中傷的なコンテンツを生成すること
        • ディープフェイクなどの偽物のコンテンツを生成すること
        • 他人を傷つけたり、迷惑をかけたりするようなコンテンツを生成すること

        許可されている行為

        逆に、利用規約では、以下のような行為が許可されています。

        • 個人的な利用目的での画像生成
        • 商業的な利用目的での画像生成(ただし、利用規約に準拠する必要がある)

        DreamStudioの使い方

        DreamStudioでは、プロンプトを入力することで、画像を生成することができます。プロンプトとは、画像生成AIに指示を与えるためのテキストのことです。

        DreamStudioでは、プロンプトの入力以外にも、スタイルや解像度などを設定することができます。

        プロンプトの例

        ChatGPTを使うことで、1つのプロンプトをもとに、英語でのプロンプトも難なく大量生成できます。

        画像

         # 命令
        Stable Diffusion, DreamStudioで画像生成をします。
        プロンプトを10個作ってください。

        # やりたいこと
        ・先程の課題を引き継いで(別の話題がすでにある場合)
        ・イマジネーションのヒントになるような画像
        ## sample prompt
        Giant redwoods in a misty forest, with towering trees and lush vegetation, peaceful, serene, high detail, forest landscape

        なお、もとのプロンプトはDreamStudioに与えられていた「霧に包まれた森の中の巨大なレッドウッド、そびえ立つ木々と青々とした植物、平和、静寂、ハイディテール、森林風景」というプロンプトです。

        生成されたプロンプトから未来都市を描くことができました。

        画像

        まとめ

        DreamStudioは、2022年からリリースされており、現在でもユーザーが多い無料で試せる画像生成AIのサービスです。SD1.6やSDXLでを使って手軽に画像を生成することができます。利用規約をよく読んで、理解して、安全に楽しく利用しましょう。

        #画像生成レッスン
        #超初心者向け #画像生成AI #生成AIと倫理

        Colosoでフルバージョンが観れます!
        「生成AIクリエイティブ AICU」シリーズ

        ■超入門:Stable Diffusionではじめる画像生成AI

        https://j.aicu.ai/AICUXColosoJP

        Originally published at https://note.com on Oct 7, 2024.

      3. 【超入門】Stability AI APIの革新的機能(2)Edit APIの活用

        この記事では、Stability AI APの革新的機能「Edit API」について解説します。

        おさらい:プロンプトの文法

        まずはプロンプトの基礎から始めたい!という場合は、
        合わせてこちらの記事をご覧ください!

        「プロンプトの文法」編で、こんなことがわかる!

        • Stability AI APIとは?
        • Stability AI APIの種類と特徴・構成
        • プロンプトの文法基礎
        • [機能紹介] Generate APIとは?
        • [機能紹介] Generate APIよりUpscale機能のデモ

        前回はEdit APIからInpaintとOutpaintを紹介しました。

        Stability AI APIの種類と特徴・構成

        プロンプトの文法」編でもご紹介したように、Stability AI APIの画像生成系の機能は2024年10月現在、4つの機能に大別されています。

        • 「Generate」:いわゆる「TextToImage」です
          • プロンプト(テキスト)によって画像生成を行う
          • 現在6つのモデルが提供されている
        • 「Upscale」:高解像度化
          • ベースとなる画像を入力し、そこにプロンプト(テキスト)で指示を追加し画像生成を行う
          • 現在{Creative, Conservative}という2つのモデルが提供されている(加えて、Standardがcoming soonとして予告されている)
        • 「Edit」いわゆるImageToImageです
          • ベースとなる画像を入力し、そこにプロンプト(テキスト)で指示を追加し画像再生成を行う
          • 現在{Search and Replace, Inpaint, Outpaint, Remove Background, Erase Object}5つのモデルが提供されている
        • 「Control」こちらも いわゆる ImageToImage です
          • ベースとなる画像を入力し、そこにプロンプト(テキスト)で指示を追加し画像再生成を行う
          • 現在{Sketch, Structure, Style}3つのモデルが提供されている(加えて、 Recolorがcoming soonとして予告されている)

        https://platform.stability.ai

        今回扱うSearch & Replace、Erase、 Search and Recolor、Remove backgroundは、このうちの「Edit API」に当たります。

        Edit APIの6つの機能

        Edit APIのAPIリファレンスはこちらから確認できます。

        https://platform.stability.ai/docs/api-reference#tag/Edit

        公式のAPIリファレンスによると、
        Edit機能は「既存の画像を編集するためのツール」です。

        全部で5つのEdit機能が公開されています。

        • Erase Object
          • 画像マスクを必要とする機能です
          • 画像マスクを使用して、元画像の汚れや、机の上のアイテム等の不要なオブジェクトを削除します
        • Inpaint
          • 画像マスクを必要とする機能です
          • 画像マスクを使用して、指定された領域を新しいコンテンツで埋めたり置き換えたりすることで、画像をインテリジェントに変更します
        • Outpaint
          • 画像に追加のコンテンツを挿入して、任意の方向のスペースを埋めます
          • 画像内のコンテンツを拡大する他の手段と比較して、
            Outpaint機能は、元の画像が編集された違和感を最小限に抑えます
        • Search and Replace
          • 画像マスクを必要としない、特殊なバージョンの修復機能です
          • 画像マスクの代わりに、search_promptに置換対象をテキストで指定します
          • この機能は、search_promptに指定されたオブジェクトを自動的にセグメント化し、promptで要求されたオブジェクトに置き換えます
        • Remove Background
          • 画像から前景(背景に対して、手前に位置する要素)を正確に分割し、背景を削除します
          • 結果として、前景を残し、背景が透過された状態の画像が得られます
        • Search and Recolor
          • 画像内の特定のオブジェクトの色を変更する機能を提供します。 このサービスは、マスクを必要としないインペインティングの特殊バージョンです。自動的にオブジェクトをセグメント化し、プロンプトで要求された色を使用して再カラー化します。

        Search & Replace機能とは?

        公式が提供しているGoogle Colabでは次のように例が紹介されています。

        Search & Replace機能サービスは、マスクを必要としないインペインティングの特殊バージョンです。ユーザーは「search_prompt」を使って、置き換えたいオブジェクトを簡単な言葉で特定することができます。 サービスは自動的にオブジェクトを分割し、プロンプトで要求されたオブジェクトに置き換えることができます。

        実際にSearch & Replaceを使ってみよう!

        ここからは、公式が提供しているGoogle Colabを使ってデモを行なっていきます。

        このColabへのアクセス、初期設定の方法は「超入門」編の記事を参考にしてください。

        動画でみたい方はこちら

        https://j.aicu.ai/AICUXColosoJP

        準備:画像のパスの入手方法

        Edit機能を使う際は、Colabに画像をアップロードし、その画像パスを取得する必要があります。

        まずは、画面左側の「ファイルマーク」をクリックします。
        下に示す画像に従って、順番にクリックしていきましょう。

        画像

        次に、操作対象の画像を選んで、アップロードします。

        少し待つと、この三角マークを押して表示される「content」フォルダの中にアップロードした画像の名前が表示されます。

        画像

        ここから先、「画像のパスをペーストします」という工程が何度も出てくるのですが、ここで得られるパスを入力してくださいね
        (つまり、画像を入力として入れる際には、「Google Colab内のこのファイル部分にアップロード後に得られるパス」を入力してくださいね)。

        Erase Object機能とは?

        Erase Objectサービスは、画像マスクを使用して、肖像画のシミや机の上のアイテムなど、不要なオブジェクトを削除します。 マスクは2つの方法のいずれかで提供されます
        (1)「mask」 パラメータ経由で別の画像を明示的に渡す。
        (2)「image」 パラメータのアルファチャンネルから派生させる。

        実際にEraseを使ってみよう!

        ステップ1:マスキング前の画像のパスを取得する

        Inpaintの入力項目に、「image」と「mask」があります。

        • image:マスキング前の画像のパスを入力しましょう
        • mask:マスク画像のパスを入力しましょう
        画像

        まずは、元画像のパスを取得しましょう。
        マスクを必要とする機能を使う場合、マスク画像とピクセルがずれた画像を入力したり、本来の画像とは関係のない部分(画像をGoogle Slideなどに貼り付けた場合の余った余白の部分など)を含む画像を入力すると、マスク画像とうまくリンクせずに画像が揺れてしまうことがあります。
        そのため今回は、Google Slideを使って丁寧にマスクをしていきます。
        まず、今回使うinpaint対象の元画像がこちらです。

        画像

        これをGoogle Slideに貼り付け、「背景」を選択し、黒を選択します。

        画像

        この状態で、ファイル>ダウンロード>png画像 と選択し、画像をダウンロードしましょう。

        画像

        これで、元画像の画像パスが得られました。
        プロンプトの「image」部分に、今得られた画像パスを入力しましょう。

        ステップ2:マスク画像のパスを取得する

        元画像に、Google Slideの機能を使って白い丸を乗せて、マスクしました。
        これはまだ「マスク画像」ではないので、注意してください。

        画像

        次に、先ほどと同じように、背景を黒に設定します。
        重要な工程なので、スキップしないようにお願いします。
        背景が黒に設定できたら、元画像を削除し、黒背景とマスクのみが残る状態にしてください。

        画像

        ここまで完了したら、ファイル>ダウンロード>png画像 と選択し、画像をダウンロードしましょう。

        画像

        これを先ほど同様に、Colab上にアップロードします。画像のパスを取得できたら、プロンプトの「mask」部分に得られたパスを入力します。
        これで、「image」と「mask」に適切な画像パスが入力できました。

        ステップ3:prompt, negative prompt, seedを指定する

        今回は、元画像のドレスを着た女性がもともと「何も持っていない」ところを、マスクした箇所において「一輪の白い薔薇を持っている」ようにEditを施したいと思います。
        そこで、それぞれ次のように設定します。

        • prompt:holding a red white rose
        • negative prompt:ugly, normal quality
        • seed:39(お好みで)

        ここまでで、必要な設定が完了しました!

        ステップ4:いざ、実行!

        さあ、画像を生成してみましょう。
        得られた画像が、こちら!

        画像

        Search and Recolor機能を使ってみよう

        Search and Recolorは新しく登場した機能です。まずはサンプルどおりの結果を見ていただくのが良いと思います。

        画像
        画像

        select prompt”chiken”をprompt”green chiken”で置き換えています。

        画像

        つまり、髪色の置き換えなども簡単にできます。

        画像
        画像
        画像

        Remove background機能とは?

        こちらもサンプルどおりに実行してみます。
        プロンプトは特にありません。自動で背景が削除されます。

        画像

        Google Slidesで背景に文字を打ってみました!

        画像

        以上、Stability AI APの革新的機能、「Edit API」について解説しました。

        みなさんの使いこなしアイディアがありましたら X@AICUai でお寄せください

        こちらの動画ラーニングメディアで詳しく紹介していきます!
        「生成AIクリエイティブ AICU」シリーズ
        ■超入門:Stable Diffusionではじめる画像生成AI 

        https://j.aicu.ai/AICUXColosoJP

        Originally published at https://note.com on Oct 6, 2024.

      4. [ComfyMaster22] レイアウトそのままにアニメを実写化!image-to-imageとスタイル変換で実写化レベルを制御

        アニメ風のイラストを、レイアウトそのままに、実写化したいと思ったことはありませんか?ComfyUIのimage-to-imageでスタイル変換と実写化レベルのコントロールを使いこなしてみましょう。

        ComfyUI マスターガイド」第22回は、image-to-image (i2i)の応用編です。以前、スタイル変換について説明しました。

        今回は、i2iでのスタイル変換をさらに掘り下げて、denoiseの値がi2iの生成結果にどのような変化を与えるのかを確認してみたいと思います。

        前回はこちら
        ▶[ComfyMaster21] ComfyUIのAPI化 – Websocketで外部保存

          1. 今回の目的: 犬のイラストを「レイアウトをそのままに」実写に変換

          画像

          今回は、i2iで犬のイラストを「レイアウトをそのままに」実写に変換します。変換元の犬のイラストをLatentに変換し、それをKSamplerノードのLatentに入力することで、元の画像の特徴を保持しながら生成を行います。

          スタイルの変換には、モデルとプロンプトの影響が大きいです。そのため、モデルには実写に強いモデルを利用し、プロンプトには「realistic, photorealistic」といった生成画像が実写になるようなプロンプトを入力します。

          そして、今回は、KSamplerのdenoiseの値の変化による生成結果の違いを比較します。denoiseの値がどのような変化を与えるのかを確認してみます。

          2. 使用するモデルと素材

          モデル

          今回は、モデルにRealVisXL V5.0を利用します。名称の通り、実写系を得意とするモデルで、商用利用可能(画像の販売、サービスへの組み込み可能)になります。このモデルを以下のリンクよりダウンロードし、「ComfyUI/models/checkpoints」フォルダに格納してください。

          https://civitai.com/models/139562/realvisxl-v50?modelVersionId=789646

          変換元画像

          変換元画像には、以下の犬のイラストを使用します。

          画像

          画像ファイルは、以下よりダウンロードください。

          https://note.com/api/v2/attachments/download/1988f0a474e2e82c2d1527822db10c53


          [おしらせ]【Coloso講座】ComfyUIマスター:カスタムノードとアプリ開発

          https://j.aicu.ai/Coloso3

          ブログや書籍といった文字で読みたい方に加えて「動画で学びたい!」という方に向けて、Coloso x AICUコラボ動画コンテンツ第3弾「ComfyUIマスター:カスタムノードとアプリ開発」を開発しています。
          詳しくはこちら


          この記事の続きはこちらから https://note.com/aicu/n/nc49e46cd6991

          Originally published at https://note.com on Oct 5, 2024.

        1. 運や勘に頼らない「クリエイティブAI」のススメ – 電通ワークショップ実施報告

          マーケティング・経営・コミュニケーションに関する先進の知見や潮流などを発信するビジネス情報サイト「ウェブ電通報」にてAICU Inc. CEO 白井暁彦のインタビュー記事が発信されました。

          AIの真価は安い・速いではなく「不可能を可能にする」こと
          2024/10/04
          斧 涼之介 株式会社 電通・白井 暁彦 AICU Inc.

          【AIの真価は「安い・速い」ではない! 電通ワークショップで生成AIの可能性を深掘り】
          電通のクリエイティブ・テクノロジストたちが主催するワークショップ「dentsu prototyping hub」。
          第5回のテーマは 「生成AI」 で、デジタルハリウッド大学大学院/AICU Inc.の白井暁彦先生を講師に迎え、高度な画像生成を学ぶ全4回のワークショップを実施しました。
          今回は、ワークショップを振り返りつつ、白井先生と電通 斧 涼之介氏との対談を通して、生成AIの未来と可能性について探っていきます。

          https://dentsu-ho.com/articles/9068

          こちらの記事は、AICUが2024年3-4月頃に実施したクリエイティブワークショップに関する報告になります。関連して、こちらの記事もおすすめです。

          生成AI時代の電通。最重要スキルは「心を動かす力」
          2024/06/26
          児玉 拓也 株式会社 電通グループ・斧 涼之介 株式会社 電通

          https://dentsu-ho.com/articles/8964

          運や勘に頼らない「クリエイティブAI」のススメ

          電通グループ本社クリエイティブ部門の社員の皆さまを対象に、175名もの参加者がオンラインで参加し、4週間・4日間にわたって実施したワークショップです。

          <以下、当日の資料を交えながら紹介します>
          ★2024年3月当時の情報で構成されていることをご勘案ください。

          Generative AI School概要

          画像

          ・DAY1「電通におけるAI活用について/活用事例の共有」
          電通におけるAIストラテジー、AIガバナンス、リスク事例の共有を目的とした勉強会を実施。本格的に生成AIを触る前に、スクール参加者のAIリテラシーを高めました。

          ・DAY2「生成AI基礎 テキストを用いた生成AIの基礎」
          プロンプトの正しい書き方やネガティブプロンプトの活用など、画像生成AIの基礎を習得しました。

          ・DAY3「生成AI上級 意図通りの絵をつくる」
          「画像から画像を作り出す」「姿勢や表情を制御する」といった技術を学び、トンマナの制御、ブランドや商品・サービスなどに抱く印象、雰囲気、感情を、顔の表情や指の演技に至るまで調整する手法を実習しました。

          ・DAY4「生成AI実践 ハッカソン」
          オンラインハッカソンとして、2時間という限られた時間での総合演習を実施しました。機能の復習をしつつ、モデル選択、同一衣装、同一人物、別シチュエーションといった要素をコントロールし、生成したいキービジュアルを完成させていきました。

          全体を通して、「運や勘に頼らない」「人の意思を込めたクリエイティブAI」の重要性を強調しました。

          Day2: 構成とポイント

          教科書として「SD黄色本」を使い、その内容を丁寧に、かつ圧縮して実施していきます。

          https://j.aicu.ai/SBXL

          演習環境は、全員がリモート環境で参加し、175名という多人数であるため、初日はスキルと環境を確認する意味があり、Google ColabとFooocusを使用しています。

          画像
          画像
          画像

          AICUがオープンに提供する Foocus日本語版 
          https://j.aicu.ai/FoooC
          など、オープンソースの技術を使って、丁寧に解説していきます。

          画像
          画像
          画像

          ワークショップ内では参加者がタイムラインに画像を共有していきます。
          企業内ワークショップのため、ご共有できず残念ですが、さすが電通のクリエイター!という作品がたくさん共有されました。

          画像
          画像

          その他、モデル、LoRAに関する知識、ライセンスなど、高度な話題が続きますが、ここは割愛です。

          Day3: 構成とポイント

          引き続き「SD黄色本」を使って、スピードと密度を上げた講習を続けていきます。

          画像
          画像
          • Image to Image を活用した高度な画像生成
          • ControlNet による精密な制御
          • 大量のバリエーション出力と 人間の「選ぶ力」「ディレクションする力」 の融合

          Day4: AICU 画像生成AI認定試験

          Day4ではハッカソン形式で、時間限定で以下のような課題に取り組んでいただきました。

          画像

          ・課題1「ネガティブプロンプト」15分
          ・課題2「image to image: Outpaint」15分
          ・課題3「image to image: Inpainting」15分
          ・課題4「ControlNet – Canny」15分
          ・課題5「ControlNet – OpenPose」15分
          ・課題6「フリー課題」20分
          モデル選択、同一衣装、同一人物、別シチュエーションに気をつけて
          一つの絵を完成させていきます
          上記の要素で独自のテクニックで進行させてもかまいません

          総合演習では、既存のクライアントワークを画像生成AIを使って振り返ってみたり、ガンダム大好きな参加者さんが、独自の実写版コラボ企画を作ってみたり、サウナなどの難度が高い撮影を画像生成でレイアウト亜nを出してみたり…見せられないのが残念です。

          その他、Adobe Fireflyとの違い、ライセンス、リスクなどについても総合的な質疑応答タイムを用意し、各参加者の作品を共有、表彰式などを行いました。参加者の皆さんの実力、平均値がギュッと上がったさまを参加者全員が共有しました。

          ワークショップを終えての振り返り

          広告代理店、エンタープライズにおけるクリエイティブ部門向けのクリエイティブAIワークショップ、AICUの振り返りとして知見をまとめておきます。

          • 生成AIはあくまでも道具。「人間がものをつくる楽しさ」 を忘れてはいけない。
          • 「つくる人」を増やすことで、新たな価値創造と市場の拡大に繋がる。
          • プログラミング教室やシニア向けワークショップなど、あらゆる世代への教育 を推進。

          生成AIは広告クリエイティブに何をもたらすのか?

          生成AIは、広告クリエイティブの分野においても、大きな変革をもたらしつつあります。

          AI画像生成による生成例と「プロ用途」での価値

          画像

          なんとなく「きれいな絵だな」で見過ごしてしまうかもしれませんが……

          画像

          実際にプロの広告写真の分野から見れば、素晴らしい夏の空、誰も居ない砂浜、ゴミのない海岸、いい感じの波打ち、タイヤ痕がない砂浜、そして「発売前で未公開の新車」をここに配置して撮影する必要があります。CGやVFX、人力で絵作りするのは「不可能ではない」のですが、この「カンプ」の時点でも「運と人的工数がかかりすぎる」という難点があります。

          もちろん、しっかりとした予算があり、設計や品質が求められる分野の絵作りは今後も残るべきだと考えています。その中でも、試作や検討といったエンドユーザーに見えないコストや発想を作り出していくうえで、画像生成は目に見えるコスト効果を発揮します。
          さらに、特に新しい感覚や新しい顧客、新しいエンゲージメントが求められる場合、その探求パラメーター数、次元は無限に増えていきます。

          特に、LoRAに関する技術や制御、倫理関係は、これからの広告代理店にとっては重要であると考えています。

          • 従来のプロトタイピングよりも 高速で多様なアイデア を創出。
          • トライアンドエラー を繰り返すことで、より質の高いアウトプットを実現。
          • 生成AIを使いこなす 「人間のクリエイティビティ」 こそが重要。

          クリエイターや権利者が幸せになる仕組みづくりを

          生成AIの普及に伴い、著作権や倫理的な問題への対応も急務となっています。

          ポイント

          • 生成AIのリスクは、法務・事業的な観点から 慎重に検討 する必要がある。
          • 「やってはいけないこと・やってほしくないこと」 を権利者が制御できる仕組みが重要。
          • クリエイターに利益が還元される フェアな収益モデル の構築が求められる。

          まとめ:白井暁彦より

          AIの真価は、単に「安い・速い」だけではありません。
          人間のクリエイティビティを拡張し、 「不可能を可能にする」 ことこそが、AIの真の価値と言えるでしょう。

          普段から、様々な画像生成AIを使いこなしている電通グループのクリエイターさん175名を相手に、より高度な使い方や、社内平均スキルを短い時間でぐっと上げる活動、そしてこの分野で博士(工学)を取得し、教育や研究を通して多くのクリエイターを生み育ててきた経験があるからこそできる最高の開発体験が共有できたことを嬉しく思います。

          そして電通は、大きな会社です。法務や倫理面にも配慮しながら、生成AIを 「人の心を動かす」 ための強力なツールとして活用していく姿勢を見せています。大きな会社ならではの、大変なこともあります。でも組織だからこそ、より大きな経験を共有しながら、社会を次の世代にすすめるために、真剣に告知、広告、ビジネス、コミュニケーション、DX(AX,BX,CX,DX)に関わっていると感じました。

          生成AIの進化は、まだ始まったばかり。
          今後、どのような未来が創造されるのか、期待が高まります。

          「つくる人をつくる」 AICUのミッション

          AICU Inc.で掲げるビジョンは 「つくる人をつくる」
          生成AI時代において、全ての人がクリエイターになれる可能性を秘めています。現在はさらに最先端のモデルやワークフローを開発し、Stability AI APIやFluxを使ってCGWORLDの表紙などを担当させていただいております。ワークショップも、Google Colabに加えてAWSの使用、そして「Anifusion」のような漫画生成などもワークショップ可能です。次回は東京大学「メディアコンテンツ特別講義」にて10月17日に予定しています。世界的な動画ラーニングメディア配信企業「Coloso」とともに、一般・企業向けの商業利用可能な生成AIクリエイター向けコンテンツを開発・配信しています。またオンサイトワークショップでは、神奈川県をクライアントに、障がい者向けクリエイティブワークショップを開発しています。

          https://j.aicu.ai/MagV4

          ■「超入門:Stable Diffusionではじめる画像生成AI
          動画公開 10/18(金) 18時 予定

          https://j.aicu.ai/AICUXColosoJP

          ■「初級者:広告企画から動画制作までのプロセス
          動画公開 10/31(木) 18時 予定

          https://j.aicu.ai/ColosoJPXAICU

          ■「ComfyUIマスター:カスタムノードとアプリ開発
          動画公開 11/22(金) 18時

          https://j.aicu.ai/Coloso3

          なお、今回のこのブログのカバーアートは、上記「ComfyUIマスター:カスタムノードとアプリ開発」の中で解説しています。AICUの最先端の環境におけるLoRA活用テクニックが学べます。

          画像

          最後に、ワークショップの企画いただいたDentsu Prototyping Hubのみなさま、ご支援いただいた役員の皆様、ご参加いただいたクリエイターの皆様、電通報での発信をご担当いただいたみなさまに感謝を記させていただきます。

          これからも、最新・最先端・難度の高い「つくる人をつくる」案件をお待ちしております。

          画像

          AICUによる企業向けワークショップ、お問い合わせはこちらから。
          https://corp.aicu.ai/ja/products

          関連


          #クリエイティブ #テクノロジー #AI #プロトタイピング #広告とAI #企業内教育 #AIワークショップ

          Originally published at https://note.com on Oct 4, 2024.

        2. 東京ゲームショウ2024でみつけたエンタメxAI技術!懐かしの「タイムクライシス」AI技術で再誕!?

          こんにちわ、AICU mediaの くしろです。
          突然ですが、読者の皆さんはゲームを遊ぶときにどんなコントローラを使っていますか?
          ゲーム専用機ではなくてPCでゲームをしてる場合はキーボードやマウスを使う人もいると思いますが、多分ほとんどの人がゲームパッドでプレイしているんじゃないでしょうか。
          ゲームパッドには方向キー・ボタン・アナログスティックなどが付いていて、ありとあらゆるジャンルのゲームに対応することが出来るとても便利なコントローラです。
          でも汎用性が高いということは専門性はそれほど高くないということと表裏一体の関係にあると言えます。
          昔のゲーム業界はプレイヤーによりゲームに没入してもらうためにジャンルに合わせた専用コントローラを開発して臨場感を高めようとしていました。
          その一つが一人称シューティングゲーム、いわゆるFPS(First-person shooter))用の銃の形をしたガンコントローラ(以下、ガンコン)です。
          今回の東京ゲームショウ2024でこのガンコンにAI技術を応用した製品が展示されていたので紹介します。

          ガンコンの仕組み

          その前にガンコンの仕組みと歴史について説明させてください。
          これをしておかないと今回のコントローラの新規性がピンとこないと思うので少々お付き合いをお願いします。

          ブラウン管対応光センサータイプ

          まず、下のイラストをご覧ください。これは昔のブラウン管ディスプレイに対応したガンコンの概念図です。
          ゲーム機で生成された1フレーム分の画像は1行ずつのアナログ信号に変換されて出力ケーブルを通してディスプレイに送られます。
          ブラウン管ディスプレイ内部ではその信号を画面の左上から右に向かって電子銃で電子をぶつけ、蛍光体を光らせます。これが1行分の表示です。電子ビームが端まで辿り着いたら折り返して1ピクセル下からまた右へを繰り返し、右下まで描画したらまた左上に戻って次の画像の表示を開始します。
          ここでポイントになるのは、描画スタートからの経過時間とディスプレイ画面上の描画位置は一対一の関係にあるということで、ガンコンはこれを利用して画面上の位置をセンシングしています。
          具体的には、ガンコンの銃身の奥に光に反応して信号を出すセンサーが取り付けられていて、センサーにディスプレイの光が差し込むとゲーム機に信号を送ります。
          ゲーム機は描画スタート(同期信号)からどのくらい時間が経ってから信号が来たかでガンコンが指し示した画面上の位置を把握するのです。

          画像

          この手法のメリットはシンプルな回路で実装でき、ローコストなこと。
          ただし、弱点もあります。それは、暗い画面やには反応しないことです。
          光に反応するセンサーを使っているのですから当たり前のことなのですが、だからと言って暗い所が無いビジュアルのゲームという縛りで開発を行うというのも無理があります。
          そこで考え出されたのが、引き金を引いた時に一瞬だけ画面全体を均一な明るさにしてセンシングし易くするという手法でファミコンの「ダックハント」などで実装されています。
          これはとても有効なのですが、光の明滅はプレイヤーの目を疲れさせるので、長時間のプレイは厳しいかもしれません。

          薄型ディスプレイ対応マーカータイプ

          次に登場したのが、赤外線カメラを搭載したガンコンと赤外線LEDマーカーとを組み合わせた手法です。
          これはディスプレイの主流が液晶やプラズマなどのブラウン管とは違う表示方式に移行したことで今までの手法が使えなくなったことへの対応です。
          下のイラストにその概念を示します。
          まず、赤外線LEDマーカーを所定の位置(この場合はディスプレイの上辺の左右両端)に設置します。
          そして、このマーカーから発せられる赤外線をガンコンの銃口にある赤外線カメラが読み取ってゲーム機に送り、マーカーの見え方からディスプレイのどこを狙っているのかを把握します。
          任天堂Wiiなどが代表的です。

          https://amzn.to/3ZQFdES

          画像

          この方式の良いところは、前述の光センサーを使用したガンコンで必須だった撃つたびに画面を均一な明るさにする必要がないことです。
          でも、この手法では別の問題を新たに抱えることになりました。
          それは、赤外線LEDマーカーを適切な位置に設置しないと正しく動作しないということです。
          例えば、左右のマーカーの高さや向き、傾きが合っていないと誤動作してしまいます。
          それに家庭用ディスプレイには色んなサイズやデザインの製品があるのでマーカーを設置する環境をプレイヤーごとに変わって一定にはなりません。
          ですから、マーカーを事前に想定された設置状態に近づけるための調整がとても重要になります。
          特に大画面テレビが一般的になっていると、それをカバーできるLEDマーカーをつくることはハードウェアのコストや「設置の煩雑さがあって遊んでもらえない」という潜在的問題もあるのかもしれません。

          AI技術を使用した新世代のガンコン

          今回紹介する達成電器の「G’AIM’E」は今までのガンコンの問題点をAIで克服した画期的な製品です。
          具体的には、ガンコンの銃口にあるカメラで取得した画像からAIがディスプレイを認識してガンコンの位置や向きを把握するという仕組みです。
          ちなみに奥に見える黒いボックス状のものが本体になります。

          画像

          イラストや風に描き起こした概念図も置いておきます。

          画像

          これまでに紹介した手法はガンコンが指し示すディスプレイ上の位置を間接的に把握するというもので、それによるデメリットは前述した通りです。
          それに対し「G’AIM’E」は人間と同じ様に直接的にディスプレイを認識している点が非常に画期的です。
          開発の方にお伺いしたところ、「ガンシューティングゲームはブラウン管の時代に人気のあるジャンルでしたが、液晶の時代になってあまり普及しなくなりました。そこで最新技術を使って気軽に遊べるプラグ&プレイの形で提供すれば愉しんでもらえるのではないかと考えて開発しました。」とのことでした。
          また、AI技術としては機械学習を使用したそうで、素材としては、まず24インチから30インチまでのモニターと45インチから100インチまでのテレビといった多種多様なディスプレイを用意して、正面や上下左右の斜めからディスプレイを撮影した画像を大量に使用して学習させたとのことでした。

          アーケードゲームの名作「タイムクライシス」が再び!

          画像

          今回のTGS2024で展示されていたデモは、1995年にナムコ(現バンダイナムコ)がゲームセンター用に開発したガンシューティングゲームの「タイムクライシス」のライセンス版が遊べる本体とガンコンとペダルという構成で、本体をディスプレイに接続するだけでの手間いらずで直ぐにプレイすることができます。

          画像

          なお、「タイムクライシス」は、障害物の陰に隠れて敵の攻撃をかわしながら自分が攻撃する時はペダルを踏んで敵に姿を見せて撃ち合うというプレイスタイルのゲームです。

          私はこのゲームをゲームセンターで遊んだことがあるのですが、実際にプレイしてみて特に違和感を抱くことも無く、逆に当時の楽しかった記憶が蘇ってきて非常に良く出来ているなと感心しました。

          実はこの製品は2025年9月発売を目指し鋭意開発中なんだそうです。

          そして、現在の一番の課題は遅延の軽減で、現状で25msくらいあるラグタイムを最終的には12msから13ms程度に抑えることが目標だそうです。
          遊んでいる時にガンコンの動きとディスプレイ上の照準とのズレは特に感じなかったのですが、もしかしたらガンコンを振り回す様な早い動きをすると問題が出てくるのかもしれません。

          この課題をどうやって解決するのかついては具体的なお話は伺えなかったのですが、ディスプレイの認識精度を高く維持したままの画像の認識スピードを向上させるAIの開発は難しい挑戦になるのではないかと想像します。
          是非、頑張って解決することを期待してます。

          まとめ

          以上、「つくる人をつくる」をビジョンとするAICUにジョインをした くしろがお伝えしました。

          もしかしたら来年の今ごろはこの製品が発売されているかもしれませんし、恐らく東京ゲームショウ2025の達成電器のブースにはバージョンアップされた「G’AIM’E」が展示されると思いますので、興味ある読者の皆さまは是非遊んでみてください。
          私も楽しみに待ちたいと思います。

          https://www.tasseidenki.co.jp

          AICUでは今後も読者の皆様にむけて、ディープなイベント取材を実施していきたいと思います!
          この記事に「いいね!」と思ったら、いいねとフォロー、おすすめをお願いします!
          https://note.com/aicu/   X(Twitter)@AICUai

          #TimeCrisis #TGS2024 #タイムクライシス #ガンコン #達成電器 #エンタメxAI

          Originally published at https://note.com on Oct 3, 2024.