01起點:做一個「會被傳出去」的東西
這個產品的目標從一開始就不是賺錢,是被分享。 養狗的人有一個共通點:他們永遠準備好要跟你講他家狗有多可愛。 我們只是給他們一個好看的、有數字的、可以直接貼進群組的理由。
所以整個產品只有一條路徑:上傳一張照片、填幾個基本資料、拿到一張卡。 沒有註冊、沒有登入、沒有教學。
02產出物本身就是廣告
關鍵不在網頁,在那張卡。因為傳出去的是圖不是連結, 所以卡片必須自己站得住:總分要大、細項要一眼看懂、 要有毛孩自己的照片、還要有一個小小的來源標記讓看到的人知道去哪做。
評分拆成七項 —— 臉部比例、眼神魅力、鼻型狀態、耳朵造型、毛髮質感、表情氣質、整體協調。 拆七項不是為了精準,是為了好看跟好聊: 單一個總分沒什麼話講,七項就會有人開始說「我家的耳朵造型只有 8.9 欸」。
分數整體偏寬容,而且卡片上一定會有「顏值亮點」跟「照顧建議」。 這是故意的 —— 沒有人想把一張說自己狗很醜的圖傳給朋友看。 這個產品要的是被分享,不是被評審。
03速度就是體驗
使用者按下送出之後,如果等超過一分鐘,很多人就走了。 我們把目標訂在45 秒內拿到卡片,而這件事幾乎完全由 AI 生圖的時間決定 —— 程式那邊怎麼優化都只是幾秒,模型算圖動輒二三十秒。
所以速度不是工程問題,是選型問題。
04不押注在單一模型上
AI 模型半年就換一輪,今天最好的下個月不一定是。 與其把某一家寫死在程式裡,我們把它做成可以隨時切換的設定: 後台可以直接換生圖的供應商跟品質等級,不用改程式、不用重新部署。
後台還有一個三欄並排的比較介面:同一張照片、同時丟給三個模型, 結果並排放在一起看,而且現在真的在服務使用者的那一欄會標紅框。 這樣「正在調的東西」跟「使用者拿到的東西」不會搞混。
目前接過的有 OpenAI 的生圖模型、Google 的 Nano Banana, 以及透過中介平台呼叫的同款模型 —— 有的比較快、有的比較好看、有的比較便宜, 而且這個排名一直在動。能換,比選對更重要。
05免費的代價:擋濫用
免費工具會遇到一個做付費產品不會遇到的問題: 每一次點擊都是我們在付錢。 一個腳本掛在那邊跑一整晚,帳單是我們的。
所以這裡花的力氣意外地多:
- 用 Cloudflare Turnstile 擋機器人 —— 而且設成幾乎不打擾真人,一般使用者根本看不到它。
- 每個瀏覽器有免費次數,用完之後跳出一個小視窗請你留 email 換更多次。
- 這道防線是可以繞過的,我們知道,而且選擇接受 —— 它擋掉的是隨手亂點的量,不是有決心的人。為了完全擋死而讓真實使用者變麻煩,划不來。
06中途改了名字
產品原本叫「狗狗顏值評分」,網域也本來規劃成另一個。 後來我們把幾個寵物相關的東西收在同一個品牌底下,改成「哈哈狗毛孩顏值卡」, 跟哈哈狗客製 LINE 貼圖共用一個家。
對外的名字改了,但程式碼裡面還是叫 DogRating —— 沒有跟著改。 因為改內部代號會讓使用者的登入狀態失效、圖片儲存被拆成兩半、 出問題的時候更難查。換一個沒人看得到的名字,風險全部歸我們,好處是零。
07用了哪些 AI 工具和服務
08這個產品真正的介面是那張卡
網頁只是產卡片的機器。真正被看到的是那張圖 —— 它會出現在一個 我們完全看不到的群組裡,旁邊沒有說明、沒有網址列、沒有任何補充。 所以卡片上的每一個元素都要能獨立成立:總分要大、七個細項要一眼看懂、 毛孩的臉要夠清楚,還要留一個小到不干擾、但找得到的來源標記。
目前還沒解決的是速度。45 秒的目標靠換模型達成,但生圖時間本身仍佔掉大部分, 下一步是把生成中的畫面做成漸進顯示,讓等待至少看得到進度。
