Blog

  • Sautoyrs: Erotic literature generation platfrom

    Sautoyrs: Erotic literature generation platfrom

    After one month work, today is the first day that I opened my erotic literature generation platform to the public: https://github.com/sudoghut/Sautoyrs

    It is a web application that generates romantic and explicit sexual stories automatically using a large language model. It creates interactive narratives between two characters with customizable settings. It can only work on Chrome /Firefox on desktop or laptop.

    Sautoyrs came from satyr:

    In Greek mythology, a satyr[a] (Ancient Greek: σάτυρος, romanized: sátyros, pronounced [sátyros]), also known as a silenus[b] or silenos (Ancient Greek: σειληνός, romanized: seilēnós [seːlɛːnós]), and sileni (plural), is a male nature spirit with ears and a tail resembling those of a horse, as well as a permanent, exaggerated erection. Early artistic representations sometimes include horse-like legs, but, by the sixth century BC, they were more often represented with human legs.[4] Comically hideous, they have mane-like hair, bestial faces, and snub noses and they always are shown naked. Satyrs were characterized by their ribaldry and were known as lovers of wine, music, dancing, and women. They were companions of the god Dionysus and were believed to inhabit remote locales, such as woodlands, mountains, and pastures. They often attempted to seduce or rape nymphs and mortal women alike, usually with little success. They are sometimes shown masturbating or engaging in bestiality.

    Since that it can generate conversations automatically, I added auto into satyrs. It became sautoyrs.

    This is the web traffic statistics for the first day. Not as good as I expected:

    Anyway, I have done my best.

  • Debugging Pitfalls: Async forEach and Slice Memory Sharing in JavaScript

    From last Thursday until just now (Saturday), two issues confused me a lot:

    forEach is synchronous, not asynchronous

    This is a fundamental concept, but problems can arise when you assume a block of code will execute synchronously while using forEach. For some reason, if that block of code becomes asynchronous, it could lead to unexpected issues.

    slice creates a shallow copy

    shortConversation = […systemPrompt, …chatThread.current.slice(-(memoryLength + 2 - 1))];

    The slice method causes shortConversation and chatThread to share part of the memory, which led to unexpected behaviors.

    The corrected code is as follows:

    shortConversation = [...systemPrompt, ...structuredClone(chatThread.current.slice(-(memoryLength + 2 - 1)))];

    Using structuredClone ensures that shortConversation and chatThread are completely independent.

  • 【Imghorce】Shopping and gift 背後的故事

    【Imghorce】Shopping and gift 背後的故事

    最近忙著做戀愛腦 AI 自動談戀愛的 project, 好久沒更新圖片了。年底有一個巨大的大眾主題~ 它就是購物和禮物。那麼做一期購物和禮物叭~

    https://imghorce.oopus.info/shopping-and-gift-20241111

    這次用到的 LORA 模型是:

    巧克力咖啡:https://civitai.com/models/197998/chocolate-coffee-style-lora-15sdxl?modelVersionId=890785

    瓷器:https://civitai.com/models/209773/porcelain-style-fluxsdxl?modelVersionId=908818

    沙:https://civitai.com/models/208699/sand-style-fluxsdxl?modelVersionId=908805

    有了之前風格化的經驗,這回輕車熟路。但在第一輪實驗時發現,場景裡面有大量的人物,出圖特別崩。第二輪正式做的時候,決定完全擯棄人物。效果不錯。本來還想做一隻貓貓在電腦前購物,它頭上有一個巨大的幻象。幻象是張牙舞爪的貓貓靈四處出擊(前段時間巨大動物靈在 reddit 上特別流行)。但考慮到這個項目的商業屬性,當前還是盡量少些個人化整活啦~ 另外,關於購物和禮物主題的文案可以寫蠻多,不過年底還有其他的機會。打算留給之後寫,所以這期的文案就幾乎為零了。圖片也純糖水~

    今天也測試了自動化 markdown 生成,暨自動化圖片重命名工具 https://github.com/sudoghut/bookworm-light-astro/tree/main/generate_data,大大增加了部署的效率。

    週末的時候約一位之前很好的朋友月底看演唱會,得知對方剛剛有了男朋友,要和男朋友去。寂し, 挺難過的。

  • 【Imghorce】Embracing Autumn 背後的故事

    【Imghorce】Embracing Autumn 背後的故事

    Imghorce 新主題 Embracing Autumn 擁抱秋季上線:

    https://imghorce.oopus.info/post-autumn-20241026

    十月的新英格蘭地區,被葉子染成了彩色。就做秋季的主題吧,雖然已是初冬氣氛。於是給自己設定的一個禮拜挑戰。一方面,如果不趕緊做完,秋天也許就溜走了。另一方面,也想試試看一個禮拜能做成什麼樣。

    首先是文案,找參考文獻倒是不難。從出版物和網頁裡面找到了這些參考讀物:

    Autumn, the neglected season in climate change research

    Historical Autumn Traditions

    Jennifer Radden – The Nature of Melancholy_ From Aristotle to Kristeva (2002)

    Seasonal affective disorder (SAD)

    接下來就是丟給 chatgpt,匯總成一篇短 blog. 效果還不錯,強行樂觀積極是 chatgpt 習慣。所以在初稿的基礎上做修改也不能少。這樣生成出來的初稿能擺脫不少我自己的巨大的情緒和私貨的影響,也挺好。

    生圖部分極大依靠 lora model. 下面列出來這次所有用過的 lora models:

    https://civitai.com/models/833475/spatulapaint


    https://civitai.com/models/705130/claude-monet-flux


    https://civitai.com/models/122594/microverse-creator


    https://huggingface.co/WizWhite/wizard-s-paper-model-universe


    https://civitai.com/models/253577/vintage-portrait-art-sdxlflux


    https://civitai.com/models/64863/cute-oil-impasto-chibi-sd15-flux


    https://civitai.com/models/647926/zen-ink-wash-sumi-e-sdxl-pony-flux

    因為設定以 Flux Schnell 模型為核心,會帶來一些挑戰。主要原因是 Schnell 模型是 Dev 蒸餾(distill)出來的更弱(對設備要求更低)的模型。另一個原因是,大部分 lora model 基於 Dev 模型訓練,在 Schnell 上或多或少會有一些偏差。特別是照片和真實風格的 lora. 人臉、手指、焦平面大概率會不太對。所以完全放棄了真實和照片風格的 lora.

    這次極大依靠 lora model 而幾乎沒使用 controlnet 模型來控制構圖的原因是,發現 controlnet model 在 flux.1 裡面用起來不太順暢(可能未來也會探索這方面的技術,讓它更順暢)。不順暢有幾方面:第一,controlnet 加上 lora 的速度比較慢;第二,controlnet 生圖的時候原圖中吸引人的點常常會消失,因此如果沒有硬性控制的需求,給 model 創作自由的 prompts 十幾張裡面常常能有幾張有趣的;第三 ,lora 的風格控制和 controlnet 的構圖控制的相互撕扯中常常會生成有嚴重瑕疵的圖片。不過在實驗中發現一個有趣的設定:把 controlnet 的 strength 設為 0 或者 0.1, 把 start 和 end 都設為 0, controlnet 和 lora 就比較相處得來了。

    最後,在生成圖片完畢,Photoshop 基於 AI 的 remove tool, spot healing brush tool, generative fill 給後期修圖工作帶來了巨大的便利。無論是去掉多餘的人、物還是無意義的文字,都很方便可以去掉。

    這張的「決定性瞬間」特別喜歡:

  • Imghorce is online – Halloween

    Imghorce is online – Halloween

    一直想要邊學圖片生成相關技術一邊發表自己的圖片。可絕大多數圖片站或者不接受 AI 生成的圖片;或者對圖片上傳數量比較大的限制,對於邊學習邊發表記錄歷程的想法就很不友好。於是,自己做一個叭~ 它叫做 Imghorece. 來自 Image 和 Force.

    網站的架構是 Astro, 能容易地部署在 netlify 上. 就像 Astro 的宣言 The web framework for content-driven websites. 部署之後,雖然需要改一些代碼,但完成基本的網頁功能簡化和平面設計之後,接下來確實就可以安心專注內容了。至於圖片站 blog 裡面 md 格式,被我設計得有些複雜,並且設計還在修改中。這個 md 格式手寫起來有點麻煩,但在基本內容板塊設計穩定下來之後,用 python 寫一個 md 生成器就很方便了。

    圖片之前考慮過部署在 GitHub. 仔細考慮之後,還是放在自己在 Hostgator 的網站上,因為 Astro 這類非數據庫類型的平台很少有點擊數量追蹤功能。我還蠻希望在網站的運營過程中知道各圖片受歡迎的程度。而文件被訪問的記錄,透過 Hostgator 很輕鬆地可以知道。

    關於圖片生成,當前選型是 Flux.1 Schunell. 這個模型允許商用,所以網站分享出來之後,無論別人如何使用,還是我自己未來在網站上加廣告條也都少了很多麻煩。另一方面,如果未來如果運營得健康,買 Flux 的會員用 dev 或者 pro 生可商用的圖也是未來可能的方案。許可證選擇了比較寬鬆的:Creative Commons Attribution 4.0 International licence.

    這裡記錄了 Imghorce 圖片站的宗旨:https://imghorce.oopus.info/authors/img-oop/

    第一个 POST 是即將到來 Halloween 相關的圖片: https://imghorce.oopus.info/post-halloween-20241020/

    這裡也分享一張沒有上傳到圖片站上的圖片(這張圖用的模型是 Flux.1 Dev. 對於商用並沒有那麼自由)。它叫做 Greeky. 在 Morton, Lisa. 2012. Trick or Treat : A History of Halloween. London: Reaktion Books 中提到 Halloween 的起源:

    “Samhain was also an important day for administration, akin to the US Tax Day in modern times. A yearly gathering was held at Tara, the ancient seat of kings, where three days’ worth of feasting and sporting alternated with debt repayment and trials (those who were found guilty of particularly severe crimes were executed then as well).” Deepl 翻譯: Samhain 也是一個重要的行政日,類似於現代美國的納稅日。一年一度的聚會在古代國王的所在地塔拉 (Tara) 舉行,三天的宴會和體育活動與還債和審判交替進行(那些被判犯有特別嚴重罪行的人也會在這一天被處決)。

    於是生成的思路是對王權(國王)和財權(商人)之間在 Samhain 節相互博弈的想象。

  • 奇妙的 B 段

    有一些音乐(大結構上)的 B 段會和 A 段形成戲劇性的反差。這篇 blog 準備長期收集這些例子。這些奇妙感是一耳朵就能聽到,並且在進入 B 段的時候會不自覺喊出來「我去!所以如果你對這些音樂感興趣,一定試試看親耳去聽。

    V89 的白日夢 : A 段是平平無奇的布魯斯,B 段一腳油門大搖滾。

    右側合流的彎彎曲曲 : A 段木吉他小清新校園小合唱,B 段(請務必調低音量)吉他和鼓一管子腎上腺素扎腦門上,接下來是清新的數學搖滾。

  • 之於錢穆《中國經濟史》

    讀賓四《中國經濟史》大致是除晉南地區西周史外最不舒服的一部了。在文本中尋求不牴牾而發揮。於有清且算先進。而隨新材料、新思想發展,歷史之求真是否止步於文獻自洽而想象,是否止步於思想史而遊戲于與死人對話?

    這種不舒服也許來自「聽其言而觀其行」的樸素。譬如:

    「但北魏有時視民情的需要,亦有特別的措施。如太武帝拓跋煮延和三年(公元434年)時,曾經下詔說:“頻年屢徵,有事西北。運輸之役,百姓勤勞,廢失農業,遭罹水旱,致使生民貧富不均,未得家給人足,或有寒窮不能自贍者。其令州郡縣隱括貧富,以爲三級。其富者租賦如常,中者(中等人家)復二年,下窮者復三年。”
    此處即照顧到貧窮農戶,中貧者可免繳兩年的租調,下貧者則免三年,亦是北魏政府對人民的一種善政。」

    未(當然當下也不可能)採訪政策實施對象「其富者」「中者」「下窮者」的前提下,是否可以下這樣「北魏政府對人民的一種善政」的結論?我們能想象到現代媒體採訪不同政治利益團體以及民眾可能得到如何紛繁、荒謬之回答。

  • Documents folder in Windows

    In the Windows system, there are likely up to four different types of ‘Documents’ that you can find in your Windows system:

    In your local user account folder:

    x:\Users\{user}\Documents\

    In your OneDrive private user account folder:

    C:\Users\{user}\OneDrive\document

    In your OneDrive organization user account folder:

    C:\Users\sudos\OneDrive – Harvard University\Documents

    In the Documents shortcut (this shortcut links to the first user account folder you logged in):

    Documents

  • 投入產出比下基於利益計算的自由

    讀到一篇很有趣的對自由的思考。

    Self-Enslavement as Resistance to the State? Siamese Early Modern Laws on Slavery
    Eugénie Mérie au (University of Paris 1 Panthéon-Sorbonne)
    I examine slavery laws, as reproduced in the 1805 Three Seals Code, as well as accounts of Europeans, to compare the legal conditions of enslaved people and serfs in early modern Siam. I argue that the Siamese kingdom of Ayutthaya (1350–1767) was a slave society where contractual self-enslavement was a widespread means for serfs to escape required corvée and military service to the state. I also suggest that differentiating indigenous contractual slaves (temporary, collateral, and permanent), who were protected to various degrees by the law, from enslaved foreign war captives, who were potentially outside of any legal framework, invites us to rethink freedom and slavery as a continuum rather than a dichotomy.

    一個人自願成爲奴隸的行爲也可以是追求自由和法律保護的行爲。這篇文章的例子是在兵役(可能成爲敵國戰俘,而失去所有作爲人的權力)和成爲奴隸的權衡下,選擇成爲(受法律保護的)奴隸可以讓自己逃避兵役,避免失去生命或者人權。
    這個基於理性計算的自由選擇可以和在威權下人的行爲來對比。無論是政治威權,性別威權,或者學術威權。比如有人權衡之下服從威權,並獲利遠大於付出的時候。服從威權獲得利益而得到的自由對於這個個體同樣也可以視爲自由。當穆斯林女性重新穿上傳統服飾時,如果能給她帶來更多在當下社會的價值認同和生活方便,那麼她就可能會認爲被束縛的行動是追逐自由的、行動和價值觀是合一的。