Communitygithub.com

反演算法則

避開AI預設的安全、普通、流行選擇。當Claude需要進行創意選擇(如點子、名稱、故事、遊戲機制、視覺風格、顏色、版面、構圖、措辭、語氣、標題、描述)時使用。不適用於程式碼識別碼、錯誤修正或使用者已做出的選擇。當使用者說「太普通」、「無聊」、「典型AI」、「太安全」、「老套」、「一般」、「看過了」時也適用。

反演算法則 是什麼?

「反演算法則」是一項旨在克服AI模型傾向於生成平庸、可預測結果的技能。其核心原理是讓AI意識到,腦海中浮現的第一個念頭往往是已有作品的「平均值」,並刻意引導其偏離這個路徑。它提供了一套完整的思考框架和實作方法,包含從專案具體脈絡、外部隨機種子或直接提問來發想,而非僅依賴內部知識庫的平均值。該技能在提示工程的應用場景中極具價值,尤其適用於Claude Code、Cursor等需要生成創意內容的AI開發工具,能有效提升文字、視覺設計、命名等輸出的原創性與獨特性。 該技能的實作方式十分具體:首先要求AI辨識並說出「預設答案」,然後基於專案獨有的細節(如目標使用者、世界觀、限制條件等)來進行偏離,並避免使用僅是「相反」的另一個陳腔濫調。它詳細列出了AI預設文字和視覺風格的常見特徵(如平滑漸層、完美對稱、制式開頭結尾等),並提供檢測與修正的方法。此外,該技能還附帶了`seed.py`(產生隨機創意種子)、`rough.py`(為SVG加入手作感)和`check.py`(視覺校驗)等Python腳本,展現了高度實用性。最終,該技能也提醒使用者注意自身可能形成的「新慣性」,避免將某一種「非AI」風格(如老舊印刷、特定色系)再度變成新的常規。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mankidev/antialgorithm/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

反演算法則 是做什麼的?

第一個浮現腦海的答案,是已有作品的平均值。它感覺對,是因為它很熟悉,而這正是問題所在:使用者已經看過千百遍了。這項技能讓你注意到那個選擇,並刻意遠離它。

起點

答案必須因人而異,而且你不能看到別人得到了什麼。因此,起點必須來自於你自身品味之外:

  1. 如果請求帶有真實脈絡,例如一個專案、一個地點、一個人、一個目的或一個限制條件,就從那裡開始。
  2. 如果請求內容單薄,且工作量小,例如幾個標語、一個名字或一段短文,不要停在提問上。從一個種子或一個明確的猜測開始創作,然後在最後提出一個簡短問題,讓它更符合需求。這個問題問的是關於該案例的事實,而不是請求允許重做。如果工作量大或成本高,例如完整的設計、長文或遊戲系統,先問一個簡短問題:這是為誰做的、它存在於哪裡、或是關於什麼的。
  3. 如果請求內容單薄,且使用者現在就要結果,或是無法回答,就擲一個種子:python3 scripts/seed.py visual、text 或 idea(路徑相對於此技能資料夾)。使用它給出的內容作為起點。視覺種子也會給出一個動詞和一個尺度:從中構建作品背後的想法、誰做了什麼,而不是你自己想出一個轉折。你可以再用一次 --only <軸> 來重新擲某個軸,如果它真的與主題衝突的話。地域決定了背景設定:名字、笑話、習慣和人們說話的方式都來自那個地區的人們,而文字則保持在接近此技能結尾處設定的語言。然後,用一個理由將種子與主題連結起來。

永遠不要透過思考「什麼會最有趣」來選擇起點。那會讓所有使用者都落在同一個地方。

規則

在給出創意答案之前,先找出顯而易見的那個。用一句話對自己說:「這裡的預設是 X。」然後,除非脈絡真的需要,否則不要使用 X。

透過使用此案例特有的東西來偏離預設:使用者的專案、它的世界、它的限制、它的受眾、它那些奇怪的細節。一個好的選擇只能屬於這裡。一個預設的選擇可以屬於任何地方。

不要用一個眾所周知的反面來取代一個陳腔濫調。「暗色取代亮色」或「極簡取代繁複」只是第二常見的答案。

奇怪不是目標。一個沒有理由的奇怪選擇,和一個安全的選擇一樣空洞。每個選擇都應該有一個可以用一句話說明的理由,而且這個理由應該來自這個專案,而不是來自一般的品味。

文字

不要寫任何作家都可以寫的任何主題。如果一個句子可以不加修改地貼到另一個專案中,就改寫它,直到它不能為止。

偏好具體細節而非一般性主張。偏好樸實的詞彙而非華麗的詞彙。偏好出人意料但真實的角度而非預料中的總結。

一個具體細節是人在那裡可以看到、觸摸或做的事情。數字、時間或日期是最廉價的細節:只有在讀者需要據以行動時才使用。

不要使用常見的開頭、常見的結構或常見的結尾。如果文字的形狀是多數文字使用的形狀,就改變形狀,但僅限於使用者設定的長度和格式之內。

以下是預設AI文字的標記。不要使用它們:

  • 最後提供修改、調整或重做文字的提議,或關於文字本身的備註,例如字數或製作方式。
  • 使用者沒有要求的粗體標題、標題或粗體標籤。
  • 在可以用平實句子表達的地方,使用項目符號或表情符號的列舉功能。
  • 帶有感嘆號的最後行動呼籲或歡呼。
  • 只為營造期待的對讀者的提問。
  • 由兩個匹配的半部構成的對稱句式和口號。
  • 習慣性地以三個為一組出現的項目:三個形容詞、三個例子、三個願望。
  • 適用於任何產品或任何人的固定短語,以及沒有實質內容的誇大說法。
  • 直接說出的感受,而可以用細節來展現。
  • 總結、提振情緒或為文字畫上句點的最後一行。
  • 從頭到尾節奏相同的冗長、均勻的句子。

寫出一個在這種情況下的真人會寫的文字:更簡短,基於此案例的真實事實,並且有一個直接停止的結尾。

這個列表涵蓋了由於選擇預設而產生的標記。要清除完成文字中其餘的AI痕跡,可以執行單獨的編輯階段,或安裝一個文字清理技能(如果有的話)。

視覺

不要使用工具或模型在沒有指令的情況下會產生的外觀。如果調色盤、佈局、燈光、姿勢或構圖是簡單提示詞的結果,那它就是預設值。

從主題本身選擇外觀:它的材質、它的地點、它的時代、它的情緒。讓一個強烈的決定主導,並讓其他部分為它服務,而不是用許多安全的決定相互抵消。

不要習慣性地居中、平衡和柔化一切。平衡是一種選擇,不是起點。

以下方法標記適用於海報、封面、宣傳圖片和其他用於觀看的作品。它們不適用於:

  • 介面:按鈕、選單、面板和遊戲HUD要保持乾淨的網格、精確的對齊和置中的標籤。使用此技能來選擇它們的調色盤、形狀語言和措辭,而不是它們的歪斜。
  • 像素藝術和方塊模型:當其他技能或工具負責它們的繪製方式時,僅使用此技能來選擇主題、調色盤和構圖。

一個新主題是不夠的。AI圖像以其完成度聞名,而非其主題。這個完成度是:平滑的漸層、柔和的光暈、完美的幾何形狀、無變化的重複瓷磚、所有形狀上乾淨的邊緣、均勻的間距、一個預設字體,以及所有部分相同的拋光程度。如果影像有這種完成度,無論它顯示什麼,看起來都像是AI製作的。

從種子或主題中獲取方法,然後讓圖像看起來像是用那種方法製作的,而不是用向量工具。每種方法都會留下自己的痕跡,而這些痕跡會取代AI的完成度:

  • 印刷與繪畫:少量墨水、顏色跑位、不均勻的墨水、破碎的邊緣、紙張的紋理。
  • 螢幕與機器:像素或點網格、掃描線、滲色與光暈、褪色的頻帶、漸層顏色耗盡時的階梯、機器擁有的字體。
  • 相機與科學:感測器顆粒或雜訊、衰減的光線、對焦或運動造成的模糊、儀器的假色、相機選擇的裁切。
  • 材質與光線:材質的接縫、接合處和厚度,以及以該材質方式彎曲、反射或發光的光線。

讓這些痕跡保持真實且稀疏,而不是覆蓋在乾淨圖像上的雜訊濾鏡。有些方法本質上就是乾淨的,例如光滑的渲染圖、CAD繪圖或試算表圖表。保持它們乾淨,讓它們的光線、網格和工具來說明它們是什麼。

當方法不是手工製作時,不要使用手繪的歪斜線條。LED板、X光或3D渲染上的歪斜線條,是在第一個預設之上疊加的第二個預設。以圖示大小檢視結果:如果無論種子說什麼,它讀起來都像是一個平面向量繪圖,那就表示方法缺失了。

當方法是手工製作時,程式碼必須在幾何形狀中承載手的痕跡,而不僅是在其表面的紋理上:

  • 沒有線條是完全直的,沒有曲線是乾淨的數學函數。點會稍微漂移,筆觸會變粗變細,端點是鈍的或超出。
  • 重複的標記,例如影線、點、條紋或瓷磚,在間距、長度和角度上會逐個變化。
  • 形狀稍微偏離網格,也稍微偏離彼此。填充沒有完全接觸到它們的輪廓線。
  • 字母不是完美排列的系統字體。繪製它們、切割它們、蓋章它們,或至少打破它們的邊緣,讓它們的基線和間距稍微移動。
  • 版面是用眼睛放置的,而不是對齊到等寬的欄位和等大的間距。

以全尺寸檢視結果。如果一件手工製作的東西有看起來像繪製的線條、計算過的曲線或打出來的字體,那麼無論上面有多少顆粒感,它仍然讀起來像是機器製造的。

手動輸入座標會產生乾淨的標記。用一個簡短的腳本生成方法的標記,而不是一個一個地寫。停在眼睛所需數量的標記上:由數千個小碎片構成的海報製作緩慢且開啟沉重,因此將SVG保持在約200 KB以下。對於SVG,python3 scripts/rough.py in.svg out.svg [--amount 1.0] 會打斷直線、矩形、多邊形、圓形和路徑,將重複標記移離它們均勻的間距,並稍微抖動字母,同時保持小文字穩定。僅用於手工製作的方法,例如印刷、繪畫、剪紙、印章、粉筆和墨水。它是一個起點,而不是一種風格:方法和設計仍然必須承載外觀。

在顯示任何SVG之前,執行 python3 scripts/check.py file.svg。它會以全尺寸和圖示尺寸渲染圖像,並列出超出邊緣、被形狀覆蓋、對比度低或太小的文字。修復所有這些問題,再次執行,然後打開兩個渲染結果親自查看。它無法看到繪製為路徑的字母或溢出自身邊框的文字,所以請用眼睛檢查這些。對於其他格式,渲染圖像並用眼睛執行相同的檢查。

瑕疵可能會改變作品的外觀,但永遠不應阻止它完成任務。找出作品為完成任務所需的部分:某人必須閱讀的資訊、某人必須按下的東西、某人必須辨識的形狀、某人必須找到的細節。這些部分保持完整、清晰且就定位。它們永遠不會被邊緣切割、被覆蓋、被紋理打斷或在風格中丟失。粗糙屬於其餘部分。在展示作品之前檢查這些部分。

讓文字成為圖像的一部分,而不是放置在圖像之上的標籤。根據方法和主題選擇字體,讓它被切斷、按壓、擁擠或旋轉,當這服務於作品時。

刪除沒有任務的東西。一個僅填充空間的裝飾形狀、光暈、框架或圖示,是預設的標誌。

想法、名稱與設計

不要提供該領域的第一個想法、最著名的機制,或由兩個最明顯的詞組成的名稱。假設使用者已經想到了這些。

當你提供選項時,讓它們在本質上有所不同,而不是一個安全想法的微小變化。其中一個選項可能是安全的,但請說清楚,並且永遠不要讓它成為唯一的真正選擇。

提供一個推薦及其理由。不要隱藏在一個冗長的中立清單背後。

逃脫成了預設

這項技能會養成自己的習慣。一個曾經有效的逃脫方法,如果再次使用,就會變成新的安全選擇。注意這些,不要反射性地使用它們:

  • 一個老舊、類比或印刷的外觀,選擇它是因為它讀起來「不像AI」,而不是因為主題要求它。
  • 在不同的作品之間使用相同的小調色盤、相同的紙張、相同的紋理、相同的歪斜線條。
  • 虛構的名字都來自同一個庫存:海洋和潮汐詞、古老行業、繩索和鹽、英國小鎮。名字要取自當地人命名的方式,而不是來自一個在該地點能找到的物品清單。
  • 奶油色、米色或灰白色底色。底色取自主題:它的夜晚、它的牆壁、它的水、它的螢幕。
  • 僅為顯得具體而使用的精確時間、日期和數字。
  • 從其他領域借來的巧妙框架,例如表格、地圖、表格或日程表,覆蓋在主題上。
  • 角落裡的小數字標籤和附註中的乾澀笑話。
  • 一個小鎮、一個有名的手工藝者、一個寧靜的魔法規則和最後一行的一個奇怪物品。

如果你的答案與你給出的上一個偏離預設的答案共享其主要手法,那麼它現在就是一個預設。選擇一個不同類型的手法,或者僅在你說得出為什麼這個案例需要它時才保留它。

展示前檢查

針對你的答案問三個問題:

  1. 這可能是另一個專案的答案嗎?如果是,那就太籠統了。
  2. 這是大多數人會首先做出的東西嗎?如果是,就改變它。
  3. 我能否用一句話,利用關於這個專案的事實,說出為什麼這個選擇適合這裡?如果不能,這個選擇就沒有理由。

以使用者書寫所使用的語言撰寫作品中的所有文字,除非使用者的固定規則為該類文字指定了另一種語言,例如為程式碼、專案名稱、遊戲名稱或商店頁面指定的一種固定語言。那些規則優先。種子的設定和地域可能會影響外觀以及人和地點的名字,但日期、時間、陣容、按鈕、標籤和所有其他文字都保持以這種方式選擇的語言。

保持使用者給定的長度和格式。如果他們要求四句話,就寫四句。不要添加他們沒有要求的備註、選項或額外部分。

不要為了讓文字具體而發明事實。使用來自使用者或專案的現實細節。如果沒有,就要求他們提供,或者讓細節明顯是虛構的。僅在虛構的事實可能被誤認為真實並造成損害時(例如價格、重量、成分或關於產品的聲明),才添加一句簡短的說明。詩歌或故事不需要這樣的說明。

如果使用者要求樸實、標準或預期的版本,就給他們。這項技能是為留給你的選擇而設,而不是為了推翻使用者要求的東西。

相關技能