之前用 stable diffusion AI ,生成了一些香香的妹子圖,讓我對 AI 感到很有信心,不論是要真人風格還是偏動漫畫ACG的風格都可以掌握覺得不錯,例如以下的圖
真人風格
ACG 風格
雖然單看圖都很漂亮沒問題,但如果要再做更多的處理,想要用程式控制,可能還是得自己拆部件,後面還得自己加工才能派上用場。
這時候我想到,如果能夠有向量圖的話,因為每個部位都是拆開的,更方便程式控制,而且尺寸大小的畫質比較不受影響,不過一般畫圖的繪師比較少做向量圖的繪畫,而且stable diffusion也無法產生向量圖,於是我把腦筋動到了 chatgpt 身上。
chatgpt 已經夠紅了,對於一般的問答都不是問題,也可以用來產生程式碼,例如這是一段我的提問,可以看到很好的回應,也有完整的程式碼以及主動告知使用上該注意的事
我:請給我一段C# mvc controller 語法,產生使用者ip
chatgpt 回覆
以下是一段可以獲取使用者 IP 的 C# MVC Controller 程序碼:
在這個範例中,使用 Request.UserHostAddress 方法獲取使用者的 IP 地址。注意,使用者的 IP 地址可能會因為設置在 NAT 網路下或是使用者使用 VPN 或代理伺服器等原因而變化。
向量圖顧名思義,其實是用程式碼標註不同的點或形狀,讓電腦運算出來,其中以 SVG 為最容易在網頁上使用的格式,於是我先嘗試性的問了 chatgpt 能不能生成 svg
你能否生成 svg 的字串呢?
是的,我可以生成 SVG 字符串。SVG 是一种可缩放矢量图形格式,可用于在 Web 上显示图像和图形。
以下是一个简单的示例 SVG 字符串:
此代码将创建一个 100x100 像素的 SVG 画布,其中包含一个半径为 40 像素的红色圆圈,圆心位于 (50,50)。
你可以通过编程语言将此字符串嵌入到 HTML 页面中,或者将其写入 SVG 文件中。
雖然是簡體的,但看起來有模有樣,於是我就丟到 html 內看看,結果是個很正常的 svg,這讓我感到異常興奮,想說要找出好用的東西了,於是正式開始實驗!
我先從簡單的圖形開始,我想的是看能不能畫出撲克牌花色,不過方塊稜形太簡單了,故意找個有挑戰性的梅花符號,而且剛好大家的梅花符號有可能有些許不同,以下圖來說,fb 的梅花底就很窄
不過想歸想,還是讓 ai 跑看看比較實際,第一次測試開始
請生成一個500x500px的svg畫布,裡面有一個長寬約300px的梅花符號,不要外框,著色為黑色
好的,以下是一个生成 SVG 字符串的 Python 代码示例,用于创建一个 500x500 像素的 SVG 画布,并在其中绘制一个填充为黑色的梅花符号:
這段 svg 怎麼跟前面範例給我的 svg 不一樣,自己幫我改成 python 語法,多了一大堆的 svg_string += …我要的是純 svg 才好處理,請他修正後,終於拿到乾淨的 svg 了。
我不要 python 代碼,我要單純 svg 標籤的語法
其實剛看到 svg 的長度時,我心中想的是怎麼這麼短,我印象中的梅花符號的向量圖應該不會這麼少啊,該不會是我孤陋寡聞,AI能夠用更簡短的步驟完成吧,算了總之丟到畫面上看看,然後看到了這個
這…好銳利的梅花啊,我還以為是箭頭符號呢
我自我檢討,覺得可能是我沒有給參考圖不太好,於是我改了一下問句,直接把符號的 unicode 貼給他,這樣總該懂了吧
我想要的梅花符號是類似撲克牌花色的 ♣,請重新生成一個給我
這圖連梅花的底都沒有,我立刻請他再改一版給我
這個梅花符號似乎有誤,請檢查一次再給我
非常抱歉,上一个梅花符号的路径确实有误。以下是一个新的代码示例,用于创建一个类似于扑克牌花色中的草花的梅花符号:
在这个代码中,我使用两个三次贝塞尔曲线来定义梅花符号的两个叶片。每个曲线由两个控制点和一个终点组成。
看起來好像有模有樣吧,還跟我說什麼什麼貝茲區線、兩片葉片等等的,多說無益,看圖吧
…我懷疑 chatgpt 在開車,但是我沒有證據
我想說人家都講要英文,但我就爛英文不好,不過賭博有關的單字還是會的,我決定在梅花符號追加英文註解,並且明確告知他哪裡有問題
梅花符號的左右兩側不夠明顯,請增加精緻程度讓他與撲克牌梅花花色符號(club) 更為接近
精緻程度是有了,但這圖跟梅花一點關係都沒有,甚至還是中空的,我決定換個描述方式,並且明確告知不要中空
請使用一個Path完成,避免圖片中有空白的區域
我說 chatgpt 你真的不是在開車…? 你前面不是才道歉過嗎,讓我想到某個道歉句型
他的道歉一直都很誠懇,他每次做了一些我們不能接受的事情的時候,他的道歉都會讓我們覺得他下次絕對不會再這麼幹,但是每次他下次又這麼幹了。
我後來想想,可能花色這個東西太模擬兩可了,如同一開始的圖,每個人的心中都有一個自己想像的梅花,各自都不太一樣,應該要尊重大家的想法,或許在 chatgpt 的認知中那就是梅花。
但就這樣放棄又太早了,我決定改成大家都知道的有名符號,就選挑 apple logo 吧
請用 svg 生成 iphone 手機的蘋果 logo 圖案
程式碼貼那麼多大家也看膩了這次直接放上正版 apple logo 做比較,可以看到顏色是對了,但圖…與其說是被咬一口的蘋果,說是吃剩的果核我覺得還差不多。
先用老方法,糾正他一下,看看拿到什麼結果
這與 apple logo 似乎不太相似,請在給我一個
這次要說是蘋果,我覺得還比較像是 diablo 風格的 icon ,看來拿 chatgpt 生成一些不明所以的 logo 可能不錯? 似乎用錯地方了
我想到 stable diffusion 生圖的時候,其實大多數圖片也都不盡理想,只是靠大量的圖取出符合自己喜好的,於是我把提問改成請他大量生成範例
請用 svg 生成 iphone 手機的蘋果 logo 圖案,有差異無所謂,但請生成5個讓我自行挑選
結果生到第3個就斷了,無妨,挑前兩個來看一下
看來是無解了…雖然風格不同,但跟蘋果真的是一點關係都沒有
我決定轉換想法,既然模仿現實世界的東西不行,反而可以自己開車甚至原創出類似 diablo logo 的東西,那就挑他的長處,請他生成一個 chatgpt 的 logo 好了,順便一提我想像的成果是 chatgpt 對話框的綠底白框三個環繞圓圈
總之就開始吧
請生成一個 chatgpt 的 svg 圖案
最後生出來的東西長這樣,讓我想到有人說英文字母 26個我都懂,但組合在一起我就不懂了。不知道這個 logo 是我不理解最新的設計風格,還是時代跟不上 ai 的角度,希望之後有更好的應用,但短時間內還是拿來生成普通程式碼就好。