我接了個活,為一家童書電商公司生產教輔插圖。本文記錄了我如何分析可行性,如何做前期準備,如何干完第一單,如何決定金盆洗手的整個過程。
其中也會穿插大量 AI 技巧和技術實踐,講原理和思路為主,具體操作不會寫得那么詳細。別慌,如果你對那些神秘的 AI 術語不感興趣,我保證你也能看懂。我會把技術細節放在特定模塊里,故事部分盡量避免術語。你可以直接快進跳過,不影響你看故事。
鑒于為客戶保密的義務,我無法直接展示成品,但可以用變通的方法讓你看到類似的效果。所以你在本文中看到的圖片,全部都是我事后生成。
現在項目已經完結,在故事開始前,先分享一個結論:AI 不能讓普通人代替插畫師,但是能讓掌握 Photoshop 的人代替插畫師。
更多AI實戰方法:
2025 年 4 月,朋友給我推薦了個活,AI 生成兒童插畫。量非常大,一個月能有一萬張左右。按朋友給的報價,只要我產能足夠,哪怕只是接下其中 2000 張,利潤也會非常可觀。
打動我的關鍵點是:量大。
因為我最大的本事,是擅長從亂麻般的復雜流程中理出頭緒,并做成自動化流水線。所有環節各個擊破,用 Python、提示詞工程、Excel、多維表等技術和工具串起來,實現以一敵十的效果。
這個本事簡單說就是:工業化。
當然,AI 生圖我本身也有豐富經驗,是能接這個活的前提。
從賺錢角度來說,這似乎是個不錯的生意。雖然現在 AI 生圖工具遍地是,人人都能生成像模像樣的兒童插畫,但生成一兩張和上萬張可完全是兩碼事。上萬張手動生成,耗費的精力并不亞于一份全職工作。
我的算盤是,把生成插圖的一整套流程都自動化,耗費極少時間,掛機大批量出圖。我的主要精力只用來挑選圖片,以及與客戶溝通。對,因為 AI 生成的圖總免不了有問題,要碰運氣(行話叫抽卡),所以我會讓程序為每幅插畫生成多張圖片,我來從中挑選。如果一張可用的都沒有,就標記一下,進入重試流程,再來一輪,直到找到可用的。
至于細節的修改,比如人物多個手指、少個手指,雖然我用 AI 工具和 PS 也能修,但親自動手產量上不去。我只想賺自動化的錢,手工活的錢我打算二次外包給插畫師賺。我朋友正好有這方面門路,能幫我找到插畫師。初步談下來,插畫師有合作意向,我給的價格也在對方接受范圍內。
接單的要素集齊。這樣一來,我就有了一根高效的杠桿,用自己極少的時間,產生超越自己時薪的利潤。那幾天心情愉快,在廚房洗奶瓶時都會不自覺唱幾句。
1. 技術分享
技術部分開始。
① 選擇模型
在這個時間點,AI 生圖的現狀是:最頂流的模型,國外的是 gpt 4o,國內的是即夢(豆包)。開源模型方面,效果最好且生態完善的是 Flux dev。
由于出圖量大,不能只看效果,還得顧及成本。gpt 4o 成本過高,即夢沒有官方 API。客戶對圖片的風格又有明確要求(真的非常具體),可行的方案只能是開源模型。
在開源模型中,SDXL 和 Flux dev 是兩個主流方案。SDXL 便宜且快速,但我知道它的局限。童書插圖有大量多人出現的場景,當一個穿著藍色條紋短袖 T 恤的小男孩,和穿著卡其色開衫的媽媽同時出現在畫面中,SDXL 經常會把兩人衣服都畫成藍色或卡其色,廢稿率奇高。用 Flux dev 就要穩定得多。
拿我在其他項目中的對比結果舉例。上圖是 Flux dev 畫的,完美地遵循了我對人物外貌的要求:女主青綠色衣服、銀灰色長發;男主紅色衣服,紅色頭發。甚至人物的眼珠顏色都遵照了指令。
然后 SDXL 生成的就是這么個玩意,一團混亂。
這是兩者的 CLIP 模型能力差異所導致。CLIP 模型是理解和處理圖文對應關系的模型。擴散模型不懂人話,CLIP 懂。CLIP 把你輸入的提示詞轉化成擴散模型能理解的“語言”,相當于是個翻譯。如果翻譯自身語言水平差,當然容易雞同鴨講。
于是 Flux dev 成了唯一的選擇。
② 選擇模型調用方式
另一方面,生圖過程如果想要自動化,必須通過程序來調用。
目前 Flux 生圖有 3 種方式:WebUI、ComfyUI、直接編程調用。我最熟悉的是 ComfyUI,它提供 API,可以把一整個工作流傳進去。只要模型和其他資源都準備到位,這邊程序輸入一個工作流,運行完那邊輸出一張圖片。把這個過程封裝成工具函數,放在一個更大的程序中循環調用,就可以實現大批圖片的連續生成。
③ 選擇運行環境
還有個問題是,AI 生圖耗費大量運算資源,這些運算資源從哪來?我的個人電腦是一臺 7000 多的 i7 處理器 Windows 筆記本,顯卡很爛,運行 SDXL 都要 10 分鐘一張圖,顯然指望不上了。換電腦是個法子,但考慮到合作還沒穩定開展,且要根據需求量靈活擴展運算資源,云端機器是更合適的方案。
最硬核的辦法是去云服務商買機器、買存儲,不過我這種半吊子開發者折騰起來也夠嗆。最終鎖定了兩個更簡單友好的平臺:Replicate 和 Runcomfy,只需要對接 API,不用費勁折騰機器配置。
Replicate 上提供 Flex dev Lora 模型。輸入提示詞和一些參數,運行完,一張圖就出現在我電腦上,非常簡單。其中 Lora 模型我需要自己訓練,然后放到 Huggingface 或 Civitai 上,通過鏈接來調用。這個模型是按張計費的,一張圖人民幣 2 毛左右。
但是 Replicate 有一點滿足不了我。它無法使用任意自定義節點,畢竟這個平臺提供的不只是生圖模型,文本、語音……什么模型都有,它不會專為ComfyUI提供這么細致的支持。而我打算使用的圖像放大技術,需要用到一個叫TTP_Image_Tile_Batch的節點,Replicate并不支持。
Runcomfy 則更加專注于 ComfyUI。它有云端機器,而且帶有存儲,意味著我可以把要用的模型、自定義節點傳上去,這個平臺理論上可以運行任意生圖模型和自定義節點。Runcomfy 按機器運行時間計費,精確到分鐘。每次要生圖,無論是打開在線 ComfyUI 界面手動操作,還是通過 API,都要先啟動一臺機器。從機器啟動成功那一刻開始計費,用完關掉機器停止計費。
關鍵是,算下來它一張圖還比 Replicate 便宜!
技術部分結束。
正式接單前,經過了兩輪試稿。
1. 試稿磨合,客戶認可
第一輪試稿,根據客戶給出的風格參考圖,分別用水彩和扁平兩種風格畫出:公園里,男孩伸手想要摘花,媽媽連忙勸阻。
最終客戶滿意的效果類似這樣,左水彩,右扁平。肢體問題請忽略(這是我事后生成),主要看風格:
挑戰 1:滿足風格要求
剛開始我偷了點懶,認為客戶對風格的要求沒有那么高,沒有專門訓練風格模型,而是去 AI 社區找別人的模型來用。生成了幾次,客戶對水彩風格勉強接受,但認為扁平風格和他們的參考圖差異太大。
別人模型的生成結果。
客戶公司自己就有一大批插畫師,有相當數量的插圖是他們的插畫師純手工繪制的。于是乎,他們盯風格那叫一個細,甚至對于人物眼睛大小和畫法、水彩勾線的筆觸質感、扁平色塊上微妙的鉛筆紋理,都有要求。
這下沒懶可偷了,只能用最精確的方式:自己訓練模型。這事聽起來嚇人,但 AI 發展這么久了,借助現成的工具其實挺簡單的。而且整個訓練過程也不貴,只花了我不到 100。
客戶每種風格都提供了幾十張參考圖,足夠訓練了。模型訓練出來后,除極個別風格細節沒還原出來,其它方面簡直以假亂真。恰好,缺失的風格細節,我也有辦法用 PS 來實現,而且也能自動化。這下風格沒有問題了,客戶也認為非常好。
挑戰 2:準確表現人物互動
另一個問題是 AI 對圖片內容的理解。它雖能畫出公園,畫出小花,畫出男孩和媽媽,但人物的行為總是差點意思。比如男孩摘花視線卻不看花,男孩蹲下左手竟然放在右邊膝蓋上,媽媽伸手不像阻止卻像接受男孩獻花。
這個畫得像媽媽扶男孩起來,男孩眼睛也不知道在看哪里。
這諸多問題的根源是,AI 能理解你要它畫的事物,但不理解事物之間的關系。因為它并不真的像人類這樣先理解物理世界再學畫畫,它像是個一輩子被關在地窖里的圈養畫師,看了無數別人的畫,然后開始邯鄲學步畫世間萬物。
為此,我專門優化了我的生圖系統。我在讓 deepseek 生成畫圖提示詞的時候,要求它把人物的動作神態描述得極其細致,細到人物站在畫面的什么位置,多少度朝向哪個方向,視線看著哪里,左手在干什么,右手在干什么,等等。
這樣確實有大幅改善,但無法完全杜絕此類問題。AI 本身能力也就到這了,如果抽卡無法解決,只能后期手動修復。
挑戰 3:解決手部畸形
還有個普遍問題:畸形的手,這是 AI 生圖老大難。手應該是人類變化最豐富的肢體了,畢竟人類通過物理接觸來與周圍環境互動,無論什么形狀的物體,都優先通過手來操作。目前的 AI 哪怕是閱圖無數,能把人臉畫得惟妙惟肖,也還是領會不了人手的全部變化。
還是那個原因,繪圖 AI 是不理解物理世界的。不像人類美術生要從人體結構學起,AI 學畫畫一上來就是一遍又一遍地刷像素點,連手指數量都畫不對。
而且,客戶這道試稿題本身畫手難度也高。首先是手的尺寸小,畫面里兩個人物,還都是全身像,那手有多小就可想而知了。AI 的注意力沒多少能分配在手上,效果可想而知。
另外由于小男孩要摘花,這就得畫出手與花的互動,人手摘花主要發力的是拇指和食指。但不懂人體結構的 AI 能畫對嗎?反正我是看到好幾張握紅酒杯的手勢,把花莖夾在食指與中指之間。
同時,媽媽的手還得阻止,要加上手與手之間的互動。媽媽的手按在小男孩的手上,這種情況是最難的,兩只手手指重疊的情況,AI 往往畫成一團糊。但也有取巧的辦法,讓媽媽的手按在男孩小臂上,或者抬起手來搖食指,同樣符合要表達的含義。
以上 3 個問題,風格問題已經穩定解決,而人物互動和手部問題則可以以量取勝,通過試稿并不難。至于第二輪試稿,雖然插圖數量加到了 5 張,但主體都是單個的動物或人物,輕松通過。
技術分享
技術部分開始。
① 訓練模型
為準確還原客戶想要的兩種風格:水彩與扁平,自己訓練模型不可避免。Lora 模型非常擅長解決這個問題。
說實話,玩 SD 和 ComfyUI 這么久,訓練 Lora 這事我竟然還是第一次干。之前沒有專門嘗試,因為我確定訓練模型會越來越簡單,真有需要再臨時學。這不,現在只要在 Liblib 的圖形界面里點點鼠標就可以完成了。
不過,訓練過程還是有些設置項要考慮。如何裁剪圖片,給訓練圖打什么標,訓練多少輪,這些還是得好好琢磨。
讀了一篇 別人的 LoRA 訓練經驗,解答了全部疑問:
- 訓練圖最好是方形圖。我沒有用 Liblib 的圖像裁剪功能,而是自己寫程序把圖都裁剪成了方形。這樣能把一些裁剪效果不好(比如人只剩半張臉、主體不完整)的圖剔除掉,以保證模型訓練質量。
- 風格類 Lora,模型特征無差別應用在整個畫面所有元素上,完全不打標是個不錯的選擇。這樣訓練出來的 Lora,使用時不需要觸發詞,只要掛上 Lora,風格就出來了。
- 關注 LOSS 函數的變化趨勢,訓練輪次增加,LOSS 逐漸減少。但到達一定輪次,曲線趨于平緩,LOSS 幾乎不再下降。如果不確定這是局部最小值還是全局最小值,看看模型的樣例圖也大概能判斷。其實對于細節較少的非寫實類圖片,有 8-10 輪訓練,效果就很理想了。
② 自動出圖工作流
把訓練好的 Lora 傳到 Runcomfy 的存儲里,資源就緒。搭建一個最基礎的 Flux 文生圖工作流,再掛上兩個 Lora,一個手部細節優化 Lora,一個自己訓練的風格 Lora。
這樣就準備好了兩套生圖工作流,一套水彩風格,一套扁平風格。分別導出 API 格式文件,留待程序調用。
另一個核心工作流是高清放大。本質是基礎的 Flux 圖生圖工作流,但有這幾個區別:
- 降噪值設為 0.15,能保證圖片高清放大時忠實于原圖內容。
- 掛了一個 4 步生圖 Lora,它能讓 Flux dev 生成圖片時只需要 4 步(通常要 20 步),但質量降低,把 Flux dev 當 Flux schnell 用,以大幅減少生圖時間。也不知道作者哪來的奇思妙想。這種用法很適合圖像放大的場合,質量降低的影響很小,肉眼看不出來。
- 采樣節點前后都接了 TTP_Image_Tile_Batch 節點。它的作用是把原圖分割成許多小塊,生成的時候,Flux 每次只專注畫一個小塊里的內容。由于注意力集中了,可以畫得更細致,細節更加準確和豐富。最后,怎么分割的就再怎么拼回來,以此達到高清放大的目的。
特別講講降噪值這個概念,想要 ComfyUI 玩得溜,這個概念必須深刻理解。我一直把它理解成在一堵漢白玉石墻上雕刻浮雕。比如說這墻有 1 米厚,降噪值為 1(最大值),就意味著你可以隨心所欲地雕。整堵墻鑿通,然后正反兩面開工雕出個大衛像都沒問題。降噪值如果為 0.15,也就是你只能動表面 15%的厚度,里面的不能動,這樣最終只能是淺淺的浮雕。
在文生圖的情況下,這堵墻原本就是一塊平板,沒有任何圖案。降噪值越大,AI 發揮的余地越大,一般都會開滿。
但在圖生圖情況下,這墻上原本就雕有圖像。如果你想一定程度保留原圖的特征,降噪值反而不能開太大。一面九龍壁,你把降噪值開低一點,AI 只能動動表面,它就會把心思花在龍鱗龍須這些細節上,不至于把整條龍改成了迎客松。
③ 手動修補工作流
經過測試,Lora 模型和生圖、放大工作流可以穩定輸出了。但為了應對各種可以預見的特殊修改,還是應該把手動修補的工具也準備好。雖然我打算丟給插畫師,但得有 Plan B,如果插畫師實在忙不過來,我自己還能臨時頂一下。
手動修補工作流有這幾個:文生圖局部重繪、圖生圖局部重繪、轉繪。
文生圖局部重繪,用的是 Flux dev fill 模型,這個模型是專門用來局部重繪和擴圖的。工作流其他方面和基礎文生圖一樣,只是還掛了我訓練的風格 Lora。當需要給人物加一頂帽子、換雙鞋子,改改貓尾巴的形狀,就用這個工作流。
圖生圖局部重繪,用 Flux dev fill 結合 Flux redux 模型。要放入圖中的物體,經過 Flux redux 的處理,能以合理的方式、相同的風格融入畫面中,同時最大限度保持物體特征。Redux 無視文字提示詞,圖片是唯一的輸入信息。這個技巧最常用來給電商模特換衣服。
轉繪,則是 Flux dev 基礎模型和 Flux redux 的結合,給一張圖片生成一個整體看上去差不多、但沒有任何一處細節相同的仿制品。再掛上我的風格 Lora,就能把照片轉繪成扁平或水彩插畫,同時原圖特征都盡量保持住。這是關鍵的自媒體洗稿技巧,把網圖一轉繪,既相似又避免盜圖處罰,別人的圖搖身一變,成了自己的原創內容。
剛才提到的各種模塊,都可以在我的 Flux 萬能工作流 里找到。
之后所有的手動修改,除了 PS 和偶爾使用的豆包,都是這 3 個工作流交替使用搞定的。配合不同的降噪值使用,又能產生更多用法變化,解決不同的問題。
技術部分結束。
2. 搭建自動化生圖系統
試稿的插畫我是手動生成的,現階段還在調試技術細節。同時,我也在一邊搭建我的自動化出圖系統。
兩輪試稿通過后,客戶已經打算給我派活了。但我的系統還沒搭建完成,手動生成太耗時,所以這個單子我暫時推掉了,說等我系統完成開始接單。
系統搭建完成,我用第二輪試稿的任務又跑了一遍,非常絲滑。有了這套系統,我具體要做的事情只剩這幾件:
- 把客戶的插圖內容(Excel 中的一列)復制到我的多維表里,等 deepseek 自動為每張插圖生成繪圖提示詞。
- 把多維表導出成表格文件,并把它放到我的程序目錄下。
- 運行 1 號程序(生成),它會從表格文件中找到所有繪圖提示詞,啟動云端機器,每幅插圖輸出 4 張圖片,全部完后自動關閉云端機器。
- 手動挑選圖片,如果某幅插圖一張可用的都沒有,就在多維表的重試列中打勾,之后再重復執行 2、3 步直到成功。
- 運行 2 號程序(放大),它會啟動云端機器,把挑選出的圖都高清放大(童書是印刷品需要高清圖片)。
- 運行 3 號程序(分辨率),它會把放大后的圖片轉換成印刷所需的分辨率,并縮放到客戶指定的尺寸。
- 執行我準備好的 PS 批處理動作,給所有圖片加上紋理細節。
- 運行 4 號程序(整理),把處理好的圖片按書籍分到不同文件夾,便于最終發送給客戶。
這一套看似復雜,但手動操作其實很少。挑圖費點時間,其他的環節我只負責按一下運行鍵,然后掛機下樓遛娃。
關鍵是,來 100 張圖也好,2000 張圖也好,我都是這套流程。要是量大又急,我還可以改一改配置,用速度更快的云端機器。雖然成本略高一點,但機器成本和插畫師成本相比,九牛一毛。
技術分享
技術部分開始。
要實現剛才提到的系統,就要把分散在不同工具里的自動化能力銜接起來。一個完整的流程,最初的輸入來自客戶的 Excel 表格,其中一列是插圖內容的簡略需求描述。最終的輸出是一個個項目文件夾,里面是圖片文件。中間的復雜過程,能自動化的通通要自動化掉,難關只能自己一個個攻克。
① 飛書多維表生成繪圖提示詞
從簡略描述到具體的繪圖提示詞,飛書多維表是最適合的工具。它能調用非常豐富的第三方 AI 模型,不局限于自家模型,可以實現復雜文本處理任務的自動化。
我的表格結構有點復雜,從上到下有圖片表、人設表、項目表 3 層,另外還有兩張維度表,用來定義兩種風格的提示詞和圖片復雜度等級(不同復雜度價格不同)。上層表依賴下層表,從下層表中讀取數據。下層表匯總上層表,用以統計圖片量、估算營收。
從下往上講?;A是項目表,定義了項目名稱、所屬月份、圖片風格,匯總計算圖片數量,根據每張圖的復雜度去需求類型表里查出價格并求和,估算整個項目營收,同時也記錄一些備注性質的信息。
上一層人設表,專為人物一致性要求而準備。如果是繪本類的書籍,要求主角服裝樣貌貫穿全書。這張表里定義了人物的名稱,選擇人物所屬項目,并由 deepseek 隨機為該人物生成詳細的外貌描述。此處給 deepseek 的指令,要求它只關注人物外貌,忽略動作環境等會隨場景而變化的因素。還要明確要求 deepseek 定義發型發色、服裝款式顏色等主要外貌特征,且保證人物都是中國人。最后,為了我自己瀏覽方便,還調用階躍星辰的文生圖 API,輸出一列小尺寸縮略圖。雖然有費用,但這個很便宜可以忽略不計。
上層的圖片表變化最多,要展開講講。圖片表每行都是一張具體的插圖,客戶表格里的需求內容往場景列(scene)一貼,多維表自帶的免費豆包模型就會把描述總結成 10 個字以內的畫面標題。這個標題既為了自己方便查找,也用來拼接出圖片文件名。
然后,為每張插圖選定所屬項目(可以選好一行其他復制粘貼),就會有一列從項目表里讀取該圖片的風格,并把風格提示詞作為前綴加到完整繪圖提示詞的開頭。
如果畫面里出現了主角,則在人物列選擇人物。我準備了 3 個人物列,也就是說一個畫面支持 3 個主角同時出現。人物列會從人設表里把外貌描述讀取過來,作為完整繪圖提示詞的信息素材。
我還加了一列人工指令,當對畫面有明確而具體的要求時,就直接寫在這里。比如要求時間是夜晚,環境是戶外。這也會作為信息素材。
接下來輪到 deepseek 表演了。我讓它參照需求列的內容用英文寫繪圖提示詞,重點滿足人工指令列的要求,其次滿足一些通用要求:
- 先算出畫面里有幾個人物。
- 詳細描述每個人的動作,細到方位角度、視線朝向等。
- 外貌特征優先從主角信息里照抄,一個字都不能改。非主角人物,外貌再自由發揮。
- 中國人、服裝符合時代背景等細節要求。
- 簡略描述場景環境。
- 輸出的格式要求及示例。
deepseek r1 能夠漂亮地完成任務,絕大多數時候生成的提示詞直接可用,準確且詳細。不過,這里的 deepseek 不是免費的,可以用火山方舟的 API。這部分成本比 Runcomfy 要低許多,不用太擔心。
如果被這種層層關聯的表結構繞暈了,我的建議是,認真弄明白多維表里的「單向關聯」和「查找引用」這兩種特殊列的用法,然后你就會發現這事也沒那么難。
還有個問題是,飛書多維表個人免費用戶一張表最多 2000 條數據,對于這個項目體量來說遠遠不夠。所以圖片表得滾動清理,不夠用了就刪掉舊的。因此我給項目表加了一列完成狀態,打勾就完成了。圖片表再把完成狀態從項目表里讀過去,就可以通過篩選一次性把已定稿的圖片刪掉,為新項目騰出空間。
剛才都是初次生圖所需的配置。我還加了幾列用來應付需要修改的情況:
- 重試列,打勾表示需要重新生成。
- PS 列,打勾表示需要我來手動修復。
- 修復列,打勾表示需要插畫師修復。
- x 和 y 坐標列,這個用來從圖中裁出一塊,用 AI 局部重繪修手,完了再貼回原圖上。這在后面開工的部分再講。
這幾列起到的只是標記作用,看客戶修改意見時,一邊看,這里一邊打勾。我為圖片表添加了幾個子視圖,根據這幾列的打勾情況列出對應圖片清單。清單導出成 csv 文件后,運行對應的程序可以一鍵從圖片堆里把它們找出來,復制到專門的目錄下,免去手動找圖。
有這樣一套表格系統,就可以在一個地方完成所有圖片的管理、繪圖提示詞的生成,并且能應對后續的多輪修改。
② Python 生圖放大
這是指兩個程序,1 號和 2 號。它們覆蓋了自動化流程里的中間一段,從繪圖提示詞到產出高清圖。
1 號程序接收多維表輸出的 csv 文件,從中讀取整列繪圖提示詞,交給 Runcomfy 處理。根據風格調用相應的生圖工作流,大批量輸出圖片。
圖片輸出后,人工挑選,同時在表格里標記需要重試的。反復運行 1 號程序,它會優先讀取重試圖片清單,重新生成。
確保所有插圖都可用后,運行 2 號程序,圖片交給 Runcomfy,調用高清放大工作流,得到印刷質量的圖片。
但 1 號程序和 2 號程序背后,需要許多底層的代碼來支撐。
首先,Runcomfy 的 API 是繞不開的,必須調通,這是程序生圖的核心。對于沒有編程經驗的人,對接 API 是挺有挑戰的。但只要選擇編程能力足夠強的模型,并且保持耐心跟它一起排查錯誤、反復嘗試,最終還是能調通。當然,不能一路“還是不對”這樣盲改,多讓 AI 讀 API 文檔:https://comfyui-guides.runcomfy.com/api-reference
調通之后一勞永逸,就獲得了一個可以在任何項目中使用的 AI 生圖工具函數。輸入任意工作流、機器類型等參數,云端機器就給我一張圖。
為了程序穩定運行,得考慮代碼的健壯性。調用 API 的網絡環境不會永遠通暢,需要加上重試和指數退避機制,讓程序不至于遇到網絡錯誤就停止運行。
另外,這個函數的使用前提是云端機器得開著。所以為此還需要一整套的機器管理函數:啟動機器、檢查是否有可用機器、關閉機器等。
完整的工具函數文件,代碼結構如上。
到了童書插圖項目里,可以對基礎 Runcomfy 函數再封裝一層,加入一些業務邏輯。因為我們并不會輸入任意工作流,我們只有生圖和放大兩個工作流。
封裝后的業務級工具函數,輸入不再是整個工作流,而是繪圖提示詞、要放大的圖片、降噪值等具體屬性。但它仍然只處理一張插圖。
生成圖片函數的 docstring。
高清放大函數的 docstring。
再上層的應用,就是 1 號和 2 號程序了。它們把機器管理的能力也用上了。生圖時檢查有沒有機器已經開著,有就直接用,沒有就啟動一臺新的。所有圖片生成完畢,自動關閉當前使用的機器,及時停止計費。
除此之外,我還給 1 號和 2 號程序配上了統計功能,可以根據機器類型、價格、運行時長算出程序每次運行的開支。運行日志固定寫到一個表格文件里,機器成本與多維表里的營收數據再導到一張專門的財務表里,手動填上插畫師開支、火山方舟 deepseek 開支、階躍星辰 API 開支,就能輕松算出利潤。
我編程水平也就那樣,但在 AI 的輔助下,做出這樣一套系統也沒多難。
③ Python 調整分辨率和尺寸
這就是 3 號程序,把處理分辨率和圖片尺寸的環節自動化了。
客戶對最終成品圖的要求是,10×10cm,PPI(每英寸的像素數量)是 450。
這用 Python 和 PIL 包很容易處理。根據要求的尺寸和分辨率,可以算出成品圖的像素大小,再用 PIL 內置的方法調整分辨率。
這個程序完全在本地運行,沒有云端調用,0 開支,耗時也短。
④ PS 批處理加上風格紋理
這部分是為了滿足客戶對風格的細致要求。
比如水彩風格,訓練出來的模型,生成背景有明顯的水彩筆觸,但人物服裝有時候看起來是純色的。客戶希望人物服裝也要有水彩筆觸一樣的隨機明暗變化。
比如褲子上這種不均勻的明暗變化。
至于扁平風格,客戶想要的其實是一種很特殊的風格,并非那種純色色塊構成的商業矢量插畫。細看參考圖,扁平色塊上有白色顆粒感的筆觸,創造出一種彩色鉛筆的質感。而模型生成圖片,色塊部分則完全是純色。
微妙的涂抹痕跡。
這么細微的風格特征,訓練 Lora 時捕捉不到,但通過 PS 二次加工也能實現。傳統做法是找水彩或鉛筆質感的 PS 筆刷,用半透明的白色在圖上刷一遍。但我要的是自動化,得讓這個過程標準化,略微犧牲一點效果也沒關系。
其實這本質是往圖片上疊一層紋理。紋理有隨機性,有的地方更透,有的地方更實,像從飛機上透過云層看大地。紋理的隨機模式不同,最終形成了不同的筆觸質感。我只要想辦法試出這兩種紋理,就可以用在所有圖上,實現自動化。
這難不倒身為設計師的我。找素材啊,往測試圖上疊,一層又一層。把圖層模式設成濾色和顏色加深,消除紋理的本色,讓它只影響圖片明暗。很快就調出了這兩種紋理,保存成 PSD 文件。
接下來做 PS 批處理程序。不熟悉 PS 的人可以這么理解,我打開一個開關,PS 就開始記錄我的所有動作。把復雜的圖片處理流程先手動做一遍,停止記錄,就產生了一個批處理動作。然后 PS 能對一整個文件夾里的圖使用這個動作,就實現了自動化加紋理。
動作過程如下:
- 打開一張圖片。
- 置入之前準備好的紋理 PSD 文件。
- 把紋理轉換為圖層,混合模式從正常改成穿透,里面的濾色和顏色加深才能生效。
- 合并所有圖層,把紋理固化到圖片上。
- 轉成 CMYK 顏色模式,這是印刷工藝需要。
- 另存為 TIFF 格式,印刷需要的格式。
- 關閉圖片。
使用這個批處理動作時,打開圖片和另存為會被新的設置覆蓋,這樣每次處理的都是不同的圖片。
轉換成 CMYK 的工作,在上一步 Python 里也可以實現,我一開始就是這么做的。但 PIL 包所用的顏色描述文件不專業,相比圖像處理軟件效果差很多,導致整張圖發黃。和顏色相關的事情,還是適合 PS 來做。
技術部分結束。
現在,萬事就緒,開始接單。
1. 按下啟動開關,圖嘩啦啦出來
第 1 個實戰項目圖不多,1 本書,82 張圖,給 7 天時間。
時間方面我自己這邊是毫無壓力,半天就全出來了。感覺像臺照片打印機(如果不能比作印鈔機的話)。
82 張插圖里,有一半左右沒有人物。這種圖片不容易出問題,往往首次生成就可用。所有圖片進入重試流程的不到 20 張。我沒有專門為手部問題重新生成,重試的幾乎都是人物互動關系不太對的情況。
其中有 3 張圖人物非常多,這類群像圖指望 AI 一步到位是不現實的。我重新生成幾次從中挑出問題較少的圖,留給插畫師修。
初稿提交客戶,向客戶說明插畫師還未介入,先忽略手部問題,后續會集中修復。這樣避免插畫師做無用功,畢竟每一次改都是成本。
2. 突遭變故,插畫師退出
我這種一心鉆到技術里的人,總是容易低估人的變數。
不過現在,還是先說說客戶對初稿的反饋。說實話我是有點震驚的,修改意見那叫一個細??偨Y下來大概分幾類:
- 細節不符合現實世界邏輯,比如課桌椅少了或者多了腿。
- AI 漏了指定元素,比如畫臺燈漏了旋鈕。
- 風格要求變了,比如模型訓練圖里,人物頭發有表現高光陰影的線條,但客戶要求去掉這些線條。
- 可能存在法律風險的內容,比如警察服裝是外國樣式。
- 印刷要求,比如夜晚和雷雨天的天空仍然要畫成亮色,否則深色印刷出來效果會差。
- 美觀要求,人物服裝款式單一,要求多樣化一些。
- 不太能理解的要求,比如小孩不能穿背帶褲,長褲不能露腳踝,不能卷褲腳,笑不能露齒。嗯……難道是收到過這樣的買家差評?
第一輪審稿意見,82 張里有 71 張要修改,修改點遠不止手部問題,那剩下 6 天時間給插畫師就危險了。
和插畫師一溝通,對方要求再次確認價格。這一確認,突然就變卦了,覺得價格太低,甚至連講價都沒講,直接就退出了。
憑心而論,我給的價格確實不是很有誘惑力。加上這種給 AI 擦屁股的活,可能插畫師內心多少是抵觸的。
這時候,我朋友在給我另尋插畫師,我自己也一直有在多方打聽。結果不是很樂觀,按目前市場水平,插畫師們的心理價位其實比我的出價高很多,甚至一些大廠插畫師能報出 100 一張的價格。而按照客戶這邊的審稿情況,后面幾輪的修改量到底有多大,我心里也沒底。即使讓出大部分利潤,高價找一個插畫師合作,仍然有極大風險,成本兜不住。
3. 咬牙自己改,試探 AI 的能耐
既然這樣,這次我就自己來吧。一方面試探客戶的修改意見到底能細到什么程度,以決定后續以什么標準來找插畫師。另一方面也考驗一下自己的 AI 能力,我雖是設計師,但不會畫畫,看我的 AI 技能+P 圖技能有沒有本事兜底,讓我有底氣不完全依賴插畫師。當然,我自認為 PS 技巧相當了得,這才敢繼續干下去。
緊鑼密鼓改了一周的圖,經過 6 輪審稿,總共改了 71 + 60 + 33 + 11 + 3 + 13 = 191 張圖。此刻我只想說一句“我滴個娘嘞”。其中個別圖問題太多,我拋棄了原先的圖全新生成,但這僅僅是減少問題,仍然需要局部調整。其余的圖重新生成風險較高,容易引入新問題,最好是在現有圖片基礎上修補。所有這些修補只能手動。
這樣一來,生圖系統的自動化流程就遇到了巨大堵點。在生成圖片和高清放大之間,大量手動修圖代替了原先的簡單挑圖。
意外的是,這一周修下來,除了時間緊張忙得我手抖外,進展還算順利??蛻舻囊蟊鞠胫M量滿足,搞不定的只能協商一下,以沒有插畫師為由讓對方考慮變通方案。結果全部要求都通過各種技巧的組合滿足了,竟然沒有搞不定的。至于改這么多輪,那是客戶方面工作流程就這樣。每一輪的修改意見都是之前沒提過的點,審稿審不到那么全面,并非修改不到位。
所有要求都滿足,但我完全不會畫畫,這是怎么做到的呢?光用 AI 改圖是不現實的,AI 畫圖難以精確控制。好在我有 PS 技巧,可以用各種手段讓 AI 乖乖就范:
- 小范圍擦除類任務,只用 PS 就能完成。
- 大范圍擦除類任務,用豆包的局部重繪又快又好。
- 元素移動變形類任務,也是 PS 的傳統強項。
- 無精確要求的創造類任務,用 AI 工作流局部重繪,可保畫風一致。
- 對物體有精確要求的創造類任務,則通過從網上搜圖,讓 AI 局部重繪或轉繪,保持了主體,又匹配了風格。
這些技巧,在下面的技術部分我會展開講講。
技術分享
技術部分開始。
這部分已經脫離自動化的范疇了,都是手動改圖遇到的難點和解決辦法。
① 技巧與用途
首先,介紹一下用到的各種技巧,以及它們的能力:
- 「Flux」文生圖局部重繪(高降噪值):完全替換掉圖里某個元素。
- 「Flux」文生圖局部重繪(低降噪值):把圖中元素畫得更細致,常用于修手。
- 「Flux」圖生圖局部重繪:把指定物體放到圖片中。
- 「Flux」轉繪:參照圖中元素和風格,重畫一張,用來把照片變成插圖,或者融合不同風格的物體。
- 「豆包」對話改圖:快速大范圍改色、擦除物體,但畫風保持不太穩定。
- 「豆包」局部重繪:精確局部擦除,好處是可以直接修改放大后的高清圖,丟給 Flux 處理則奇慢無比。
- 「PS」快速選擇工具:通過大致涂抹選中一個物體,顏色相近的部分也會自動選上,便于分離出來。
- 「PS」魔棒工具:完全根據顏色選擇,可以設定顏色的篩選范圍,適合選中樹枝、樹葉等形狀非常復雜的物體。
- 「PS」污點修復畫筆:低配版局部重繪,在簡單背景的表現上不輸豆包。
- 「PS」內容識別填充:效果比污點修復畫筆更好一些,但需要先圈選再填充,而且會產生新圖層,不太方便。
- 「PS」仿制圖章:把一處畫面畫到另一處位置,經常用來修補兩種顏色的邊界線,沿著邊界一路抹過去,可以把斷開的線接上。
- 「PS」涂抹工具:就是字面意思,像小孩在餐桌上按著飯菜一頓亂涂,它與仿制圖章相反,可以把一些不想要的邊界線涂亂,讓它們不那么明顯。
- 「PS」操控變形:把一個物體局部釘住,拖動剩余部分,物體就像橡皮一樣任你彎折??梢宰屓宋锾ь^低頭、彎起胳膊伸直腿。
- 「PS」色階與色相飽和度調整圖層:改變亮度和顏色,配合剪貼蒙版可以只應用在畫面局部,輕松修改衣服顏色。
- 「PS」木刻濾鏡:把畫面的顏色降到只剩幾種,這是濾鏡庫里能把圖片處理成扁平風格的最佳工具。
接下來,看看這些技巧的組合如何解決一些疑難問題。
難題 1:交警指揮交通
關鍵技巧:豆包局部重繪、內容識別填充、木刻濾鏡
有趣的是,這張插圖的難點竟然來自文化原因。Flux 是一個德國團隊訓練出來的模型,它的訓練數據里,中國的服飾元素顯然不足。讓它畫一張交警指揮交通,它畫出的交警服完全是外國樣式。但童書上不能出現這種問題。
文生圖局部重繪,降噪值 1,明確要求它畫藍色短袖中國交警襯衫。然后就會出現如下情況:
這是 Liblib 的限制,禁止生成一些可能有法律風險的內容。無論是提示詞里帶有“警察”,還是生成的圖太像警服,都會觸發屏蔽。當然,你也可以選擇一些沒有屏蔽的平臺,不過 Liblib 它便宜啊,是沒有好顯卡時的絕佳選擇。
但如果去掉警察相關的詞,畫出來真的就是很普通的短袖藍襯衫,不像警服了。寫也不是,不寫也不是。
既然 Liblib 上的 Flux 這么扭捏,不如試試別的工具。豆包的即夢模型沒有這個限制,而且效果不錯,大概樣子就出來了。
白色交警帽難度更高,豆包也畫不對,像高檔酒店門口的停車引導員。白色交警帽樣式有它鮮明特征,特征少了,相似度會直線下降。
可以找個角度大致吻合的交警帽 P 上去。注意,為了避免被屏蔽,先用 PS 把上面的警徽給擦掉,等圖片不必經手 AI 了再加回來。這里能看到 PS 內容識別填充的威力,輕松就把警徽去掉了。
把帽子擺好位置,現在還是寫實風格。
給帽子加上木刻濾鏡,減少顏色數量,風格一下就變扁平了。
沒有那么違和了,難題解決。當然,圖里還有很多其他問題,都有比較穩定可靠的修復方法,這里就不講了。
難題 2:跳繩的小孩
關鍵技巧:文生圖局部重繪(低降噪值)、轉繪、操控變形
這張插圖又觸及 Flux 的能力邊界了。它跳繩的場面肯定見太少,畫的都是小孩胡亂揮舞繩子,甚至能有繩子就已經不錯了。本想大力出奇跡,一口氣生成 16 張圖,居然一張能用的都沒有。
不過沒關系,只要動作對,跳繩可以畫上去。這張最有改造潛力,PS 胡亂畫個跳繩,就有點像那么回事了。
使用轉繪工作流,降噪值設為 0.7。大體保持原圖內容,留給 AI 的發揮余地足夠讓它把跳繩畫得更真實。
這里展開講講手部的修復。可以看到小孩右手沒有拇指,或者說拇指和食指連成一片了。雖然可以直接在這張圖上局部重繪,但手持物體的情況,AI 往往畫不好,大量重試都不一定能成功。
對于這種面積很小的手部,AI 修不好是正常的,因為分配的注意力太少了。修手的關鍵不是局部重繪,而是放大。放大之后清晰很多,細節足夠,雖然手仍然是壞的,但修起來成功率就高多了。
不過,如果 Flux 直接在完整的高清圖上局部重繪,不僅速度非常慢,而且偏離 Flux 擅長的生成尺寸,很容易崩。解決辦法是把要修的部分單獨裁剪出來,取一塊 1024×1024 大小的圖片,這是 Flux 最擅長的尺寸,可以保障生成效果。修完了再貼回去。
可是貼回去的時候準確對位置很費勁啊,這就要借助程序來精確處理了。
回顧一下之前飛書多維表里的 x 和 y 坐標列,它是我放大裁剪和粘貼程序的一部分。我的裁剪程序可以把圖片劃分成 5×5=25 個切片,每個 1024×1024,切片之間可以相互重疊。我在多維表里填上切片的行列號,比如上圖取第 2 列(x 為 2)第 3 行(y 為 3)的切片,這個目測就能看出來。然后運行裁剪程序,它就能把這塊切片單獨存出來。
再對切片圖用局部重繪,一次成功。降噪值可以看情況調整,原先的手問題很大,降噪值就要高。反過來,如果像本圖情況,手的大部分姿勢是對的,降噪值就要低,避免引入新問題。
再運行配套的粘貼程序,它根據裁剪時的行列序號,準確把切片貼回原圖上。
不過這個人物的姿態還是不太自然,客戶提過這樣的意見,他們覺得人物站在地面不像是跳起來了。
也行,這個用 PS 就能處理:操控變形。先用快速選擇工具把整個小腿和腳都選中,復制到新圖層里。
開啟操控變形,關節處用很多釘子釘住了。
按住鞋子往后一拉,腿就彎過來了。
再把原先的腿擦掉,就拗過來了。不過膝蓋連接處有個小尖角沒處理好,地面上也缺少投影,純技術演示,小問題這里就不修了。
難題 3:暴風雨中的柳樹
關鍵技巧:轉繪、豆包對話改圖
畫出來這枝繁葉茂的樣子,筆直垂下的枝條甚至有點像榕樹的氣生根。
我想看看是 Flux 不認識柳樹,還是被我的風格 Lora 污染了,在這種風格下所有樹都畫成這樣。于是關掉 Lora,去掉風格提示詞,讓它生成寫實照片,發現它原來真的不認識柳樹。
那就在這張基礎上改吧。
先用豆包對話改圖把樹去掉,留下背景。
再想辦法弄出一棵插畫風格、枝條特征顯著的柳樹。直接網上找素材是最快捷的方法。
豆包對話改圖把柳樹改成彩色的。
用 PS 粗糙地拼起來。
經過幾輪低降噪值轉繪(0.3),效果就比較自然了。
最后把柳樹葉子改亮一些,避免和烏云混在一起。雨滴的方向還不對,應該順著風向。在分離背景那一步其實應該順便去掉,最后在找素材加上。這里就不管了。
難題 4:教室大掃除
關鍵技巧:文生圖局部重繪(高降噪值)、圖生圖局部重繪、轉繪
這個畫面要體現一個小孩擦窗戶,其他小孩在打掃別的地方。AI 一遇到這種人物眾多要求復雜的情況就漏洞百出。人物動作不合邏輯,課桌椅也缺胳膊少腿,沒有一張能用的。
這些問題一個個修,不如找一張真實照片或手工插畫來轉繪。至少里面人物和環境都是合理的,在轉繪過程中可能引入少量問題,但也比憑空生成的容易修。
降噪值開到 1,轉繪完,風格就拗過來了。
盆的造型太古老了,換個現代的盆。不過盆太深了,手也缺了,可以之后再修。其他小問題用簡單的修補方法都可以搞定。
這張圖的問題比我給客戶的圖少,有個典型問題沒有出現:抹布造型。
在給客戶的圖片中,有一版過程稿里的抹布長這樣。提示詞里用的單詞是 rag,確實是抹布。但這個英文單詞也有破布的意思,Flux 就把它畫成這樣亂糟糟一團,像個拖把頭。
文生圖局部重繪,描述成 a piece of cloth,一塊布,反而變得更像正常的抹布了。所以有時候并不是畫不出來,是沒有找到合適的提示詞。
手動改圖遇到的疑難問題不止這些,但把前面列出的技巧組合使用,最終都有辦法解決。
技術部分結束。
這單做完,評估了一下總修改量和所用時間,決定關門大吉不再接單。原因很簡單,修改量太大,且時間緊張,單個插畫師兼職不足以應付,得全職。如果單人全職,即使我一分不掙利潤都給插畫師,收入可能都不如上班打工,誰愿干???如果多人兼職,則要花過多精力在溝通上,還要疲于應付人員流動。
綜合考慮下來,這生意實際上杠桿太小,見好就收吧。
至于這么復雜一套生圖流程,構思、搭建和調試,總共投入了兩個星期時間。但也沒有白做,稍作修改便可以用來干別的,等有需要時再重新啟用。
這是一次在實際項目中密集使用 AI 的經歷,讓我得以感受 AI 對生產力的提升,也體會了 AI 到穩定商用的距離。
項目完成,有了喘息的時間,一邊寫下本文,一邊回顧整個過程。想想還是震撼,畢竟從頭到尾所有事情都是我一個人完成的。我沒想到,兒童插畫在 AI 的加持下是可以(部分)流水線生產的。我也沒想到,AI 能讓一個不會畫畫的人頂大半個插畫師。
當然,用 AI 終歸是為了解決問題,不是為 AI 而 AI。現階段 AI 不是萬能藥,它不行的部分,要用傳統手段來提供可靠保障。AI 是柔性的、隨機的,傳統手段是剛性的、確定的,這兩者結合起來用,就像建造一尊大型泥塑。全都用泥,整體軟趴趴很難成型,但如果往一個木芯上面糊泥巴,則既穩固,又有細節。
就我個人而言,我敬重能把泥塑做得惟妙惟肖的手藝人,但我更愿意開一家生產木芯的流水線工廠賺錢。
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
熱評 喵咪??喵咪??喵咪??喵咪