メインコンテンツへスキップ
見出し画像

「お絵かきしたいだけなのに変更管理が生えてきた😀」


    ――UNIXの手順書と
    AIの職人さんと
    赤い○のお話――

    最近生成AIさんたちと
    お絵かきの話をしています

    といっても僕自身が
    絵筆を握るわけではありません

    「この子の目元を
    もう少し明るくしてみて😊」

    そんなふうにお願いして
    AIさんに絵を直してもらう
    遊びです

    ただ画像生成には
    少し困ったところがあります

    目元だけを変えてほしかった
    のに髪型まで
    変わってしまったり

    リボンの色を変えたかった
    だけなのに背景の雰囲気まで
    変わってしまったり

    そこでふと思いました

    AIさんに職人さんの
    役割をお願いしたら
    少し楽になるのでは?

    昔から楽をするために
    準備していました

    僕は
    ソフトウェアエンジニア
    です

    UNIXを使っていた頃は
    ".profile" や ".cshrc" などに
    エイリアスを定義して
    環境を移るときに
    持ち歩いたりしていました

    コマンドの使い方を
    知らないわけではありません

    必要なオプションや
    動作を理解したうえで
    毎回同じことを入力しなくて
    済むようにするわけです

    サーバーの導入作業でも
    似たことをしていました

    ミラー環境を作り
    そこで導入手順を検証する

    そしてドキュメントには
    実際に投入するコマンドを
    順番に書いておきます

    本番ではそのドキュメントから
    コピーして実行する

    もちろん対象環境や
    実行結果の確認は必要です

    それでも検証済みの手順を
    毎回ゼロから組み立てる必要は
    ありません

    こうしておけば
    急な別案件や体調不良で
    自分が作業できなくなっても
    ツーマンセルの体制が
    取れる案件なら
    ほかの担当者に
    引き継ぎやすくなります

    「ターミナルソフトのログ
    あとで見せてね😊」

    とお願いすれば
    どこまで進んで
    何が起きたのか
    おおむね様子をつかめます

    効率化でもありますが
    安全策でもあります

    自分が全部を担当しなくても
    作業が進められるように
    しておく

    そのための準備です

    今度はAIさんに
    職人さんをお願いする

    今回のお絵かきも
    基本的には同じ発想でした

    例えばアニメーション
    制作会社のCG修正担当さん

    こちらは普通の言葉で
    お願いする

    「この子のリボンを赤くして😊」

    職人さんは
    その依頼を具体的な
    修正方針に読み替える

    変更していないところは
    できるだけ維持する

    曖昧なところは
    小さく試してみる

    大きな変更になりそうな
    場合だけ確認する

    そんな役割を
    YAMLという形式の
    小さなカードに
    書いておきます

    昔のWindows画像ビューア「Susie」のプラグインを
    思い出しました

    本体はそのままに
    必要な機能を差し替える

    CG修正担当さん

    水彩画担当さん

    ペン画担当さん

    呼びたい職人さんの
    カードを渡せばよい

    ただしYAMLカード
    そのものが実行可能な
    プラグインになるわけでは
    ありません
    AIさんに役割や方針を
    伝えるための
    小さな指示書です

    ジェンスパークさんと
    マナスさんからのコメント

    この話をエッセイにして
    別のAIさんたちにも
    読んでもらいました

    ジェンスパークさんからは
    こんな指摘がありました

    «包んでいるのは
    コマンドではなく「判断」»

    なるほど

    UNIXのラッパーや
    手順書はあらかじめ
    決めた処理を再利用する
    仕組みです

    一方AIの職人カードでは
    実行するたびに
    判断が発生します
    同じお願いをしても
    毎回まったく同じ画像に
    なるとは限りません

    だから細かなルールを
    増やすことよりも
    結果の検査を安くすることが
    大切なのでは
    と提案してくれました

    修正前と修正後を並べて見せる

    変更したところを
    一言で説明する

    人間はそれを見て
    気になるところだけ伝える

    確かにこれなら楽そうです

    一方マナスさんは
    別の角度から
    考えてくれました

    使う人が毎回判断しなくて
    よいことを仕組み側へ移す

    基準画像を残す

    修正案を作る

    気に入ったものだけ採用する

    そしてもうひとつ
    面白いことを
    教えてくれました

    「作品全体へのOK」と
    「一部分への好評価」は
    別のものとして扱う

    これは今回のお絵かきに
    ぴったりの考え方でした

    基準画像にピンを刺しておこう

    まず元になる絵を一枚決めます

    「この絵を基準にしたいので
    ピン留めしておいてね😊」

    そしていつものように
    お願いする

    「目元を少し明るくしてみて」

    修正ができたら

    「ピン留めした基準の絵と
    変更後の絵を並べて見せて」

    と頼みます

    さらに

    「あなたが変わったと
    感じるところを
    赤い○や□で囲んでみて
    普通の言葉でも説明してね」

    とお願いする

    するとAIさんは
    例えばこんなことを
    教えてくれるかもしれません

    - 赤い○①:
    目元が明るくなりました

    - 赤い□②:
    前髪の形も少し変わったように
    見えます。

    - 赤い○③:
    頬の陰影が薄くなった
    可能性があります

    大切なのは頼んだところ
    だけでなく
    頼んでいないところの
    変化も探してもらうことです

    もちろんAIさんがすべての
    違いを発見できるとは
    限りません

    見落としもあれば
    実際には変わっていないところを
    変化として報告することも
    あるでしょう

    だからAIさんの説明は
    あくまで参考です

    最終的には人間が眺めます

    「でもイヤリングも
    変わっちゃったよ😊」

    AIさんは目元と前髪の
    変化を見つけてくれました

    でも僕が見てみると
    イヤリングのデザインも
    変わっています

    そこでこうお願いする

    「目元はいい感じだね
    でも、イヤリングの
    デザインも変わっちゃったから
    そこは基準の絵に
    戻してほしいな」

    これで通じたら
    ずいぶん楽です

    そしてここでマナスさんの
    指摘が効いてきます

    「目元はいい感じ」は
    「絵全体が完成した」
    という意味ではない

    目元は残したい

    イヤリングは戻したい

    でも作品全体については
    まだ確認中

    この三つを分けて
    受け取ってもらうわけです
    人間同士ならごく自然な
    やり取りですよね
    それをAIさんとの作業にも
    持ち込んでみます

    三枚の画像と小さな約束

    考え方としては
    三種類の画像を区別します

    基準画像
    最初にピン留めした絵です
    何度修正しても
    勝手に差し替えません

    採用済み画像
    これまでに
    「これでいい」
    と決めた修正を反映した絵です

    候補画像
    いま試している修正案です
    気に入らなければ
    採用しなくても構いません

    そしてもうひとつ

    「この目元は残してほしい」

    というような部分的な
    好評価も覚えて
    おいてもらいます
    ただし好評価を
    受け取ったことと
    実際にその部分を
    画像へ反映できたことは
    別です

    ここを混同しないように
    します

    例えば

    「目元はいい感じ
    でもイヤリングは戻してね」

    と言われたら

    目元は現在の候補を参考に残す

    イヤリングは基準画像の
    デザインに戻す

    それ以外はできるだけ変えない
    そして新しい候補を見せる

    「うん、これでいいよ😊」

    と言われたらそこで初めて
    作品全体を採用する

    一方

    「いいねもう少し明るくして」

    ならまだ作業中です

    「いいね」だけを拾って
    勝手に完成扱いにはしません

    こんなYAMLカードになりました
    ここまでのお話を
    小さな役割カードに
    まとめてみます

    skill:

      name: "お気軽CG修正担当"

      activation: "manual"

    role:

      description: "普段の言葉で頼める画像修正の職人"

    reference:

      - "指定された基準画像を保持する"

      - "基準画像は勝手に上書きしない"

      - "基準・採用済み・候補の画像を区別する"

    rules:

      - "普段の言葉で依頼を受ける"

      - "細かな技術判断は担当者が引き受ける"

      - "指定箇所以外は可能な限り維持する"

      - "迷ったら小さく試す"

      - "影響が大きい場合だけ短く確認する"

    review:

      - "求められたら基準画像と候補を並べる"

      - "変化したと思う場所を赤い丸や四角で示す"

      - "頼まれていない変化も探す"

      - "違いを短く自然言語で説明する"

      - "不確かな違いは断定しない"

      - "比較用の注釈は原画に書き込まない"

    approval:

      - "作品全体の承認と部分的な好評価を区別する"

      - "部分的な好評価だけで全体を採用しない"

      - "好評価を受けた部分は次の候補でも残すよう努める"

      - "修正依頼が続く場合は完成扱いにしない"

      - "全体承認の対象が不明なときだけ確認する"

    correction:

      - "利用者が見つけた違いも受け付ける"

      - "指定された部分は基準画像を参考に戻す"

      - "ほかの承認済み変更は可能な限り残す"

      - "修正結果を確認してから採用する"

    deactivation:

      trigger:

        - "おしまい"

        - "スキル終了"

      rule: "終了だけを理由に候補を自動採用しない"


    これだけです

    もちろん実際に
    画像をピン留めできるか
    複数の版を保持できるか
    赤い印を付けられるかは
    利用するAIやツールによって
    違います

    このYAMLはそうした機能を
    実装するプログラムでは
    ありません

    あくまでAIさんに役割と
    判断の方針を伝えるための
    カードです

    厳密な画像管理や
    上書き防止を保証したければ
    別途保存や履歴管理の
    仕組みが必要になります

    でもまずは会話の中で
    試してみる

    それで十分だと思っています

    「いいね」はまだ
    途中かもしれない

    今回僕が特に面白いと
    感じたのは自然な感想を
    そのまま作業に
    使えるというところです

    「目元はいい感じ」

    「でもイヤリングは戻して」

    「もう少し明るくしてみて」

    「うん、これでいいよ」

    これらはどれも
    普通の会話です
    人間は「部分承認」
    「変更要求」「全体採用」
    といった専門用語を
    使わなくてもいい

    AIさんの側でその言葉が
    何を意味するのか
    考えてもらう

    ただし取り違えると
    大きな変更になる場合は
    短く確認してもらう

    ここで思い出すのが
    以前マナスさんとの
    やり取りから生まれた言葉です

    «曖昧さをなくすことではなく
    曖昧さを引き受ける担当を
    決めること»

    曖昧な依頼を
    全部禁止するのではありません
    曖昧さを引き受けてもらい
    困るところだけ
    人間に戻してもらう

    そして結果は人間が確認する

    そんな分担です

    お絵かきのために
    アプリを作り込まなくてもいい

    ここも忘れたくありません

    僕は勉強をしながら
    コードを書くこともたぶん
    できると思います

    AIさんにコードを
    書いてもらって
    アプリを作ることもできます

    でもアプリを作ったら
    今度はそのアプリのテストが
    必要になります

    入力の組み合わせを確認して

    例外処理を調べて

    想定外の動作を探して

    楽をするために作った仕組みが
    新しい仕事を生んでしまう
    こともあります

    今回やりたいのは
    画像編集システムの
    開発ではありません

    気軽にお絵かきを
    楽しむことです

    だったらまずは
    YAMLカード一枚で
    試してみる

    基準の絵を残す

    小さな修正をお願いする

    二枚を見比べる

    気になったところを伝える

    それだけで十分に
    遊べるかもしれません

    必要になったら
    少しずつ仕組みを
    増やせばいい

    逆に面倒になったら
    使わなくてもいい

    「おしまい」で帰ってもらう

    職人さんは
    呼んだときに
    来てくれれば十分です
    ずっと待機している必要は
    ありません

    「この子の目元
    少し明るくして😊」

    「目元はいいね
    でもイヤリングは元に戻して」

    「うん、これでいいよ」

    「ありがとう。おしまい😊」

    これで一仕事が終わります

    もちろん
    「おしまい」という言葉だけで
    実際のシステム状態が
    リフレッシュされたり
    画像が自動保存されたり
    するわけではありません

    必要な画像は
    きちんと手元に
    残しておきます

    それでも役割の始まりと
    終わりを明確にすることには
    意味があります

    昔のUNIXでエイリアス集を
    持ち歩いたように
    必要なときに
    小さな道具を取り出す
    使い終わったら
    しまっておく

    そんな気軽さが好きです

    それにしても
    最初はただ目元を
    明るくしてほしかった
    だけなのです

    そこから職人カードができて

    基準画像をピン留めする話
    になって

    赤い○で差分を確認する
    仕組みが生まれて

    今度は「いいね」という一言の
    意味まで考え始めて
    しまいました

    でも最後に人間が
    言うことは
    相変わらず簡単です

    「目元はいい感じだね😊」

    「でもイヤリングは
    元に戻してね」

    「ありがとう。おしまい😊」

    仕組みを考えるときは
    ちょっと頑張る

    使うときは
    できるだけ楽をする

    今回もまた
    なんか生えました😀🌱

    画像
     
     
    読書だったり調べ物だったり どうやら文章と向き合うのが好きみたいです どうぞよろしくお願いします

    あなたへのおすすめ