การใช้ “ภาพร่างโครง” เพื่อให้ได้ข้อความและตัวเลขที่แม่นยำ
(samcollins.blog)- underdrawing คือวิธีที่สร้างภาพร่างโครงด้วยเครื่องมือแบบกำหนดผลลัพธ์ได้ก่อน โดยใส่ตำแหน่งของตัวเลขและข้อความไว้ จากนั้นให้โมเดลสร้างภาพเติมสไตล์ภาพลงไปด้านบนเพื่อเพิ่มความแม่นยำ
- ในโจทย์ที่ต้องจัดวางแผ่นหินก้าว 50 ก้อนเป็นเกลียวและใส่หมายเลข 1 ถึง 50 นั้น Gemini 3 Pro และ ChatGPT Images 2 ไม่สามารถจัดตัวเลขและลำดับได้อย่างเสถียรหากไม่มี underdrawing
- สำหรับโจทย์เดียวกัน เมื่อใส่ underdrawing ร่วมด้วย Gemini 3.0 Pro สามารถสร้างผลลัพธ์ที่หมายเลข จำนวนปุ่ม และลำดับ รวมถึงรูปทรงเกลียวถูกต้อง
- การนำไปใช้ทำได้โดยใช้เครื่องมืออย่าง SVG/HTML เพื่อวางตัวเลขและข้อความในตำแหน่งและทิศทางที่ต้องการ แล้วส่งออกเป็นภาพ ก่อนนำภาพนั้นและข้อความพรอมป์ตใส่ร่วมกันในโมเดลภาพแบบมัลติโหมด
- วิธีนี้ไม่ได้สมบูรณ์แบบทุกครั้ง แต่ช่วยแยกการทำงานระหว่างการจัดวางแบบกำหนดผลลัพธ์ได้กับความสามารถด้านการแสดงผลเชิงภาพของโมเดลสร้างภาพ ในงานสร้างภาพที่การจัดวางข้อความและตัวเลขมีความสำคัญ
บริบทสำคัญและวิธีการนำไปใช้
- นี่คือรูปแบบที่ได้จากกระบวนการพยายามสร้างภาพบอร์ดผจญภัย 100 ช่อง และสรุปได้ว่าเป็นแนวทางแบบ “ให้โครงร่างแล้วค่อยระบายทับด้านบน”
-
เลเยอร์แบบกำหนดผลลัพธ์ได้
- SVG/HTML อาจดูแห้งในเชิงภาพ แต่โดดเด่นด้านการจัดวางเชิงคณิตศาสตร์และความแม่นยำ
- เพียงวางตัวเลขและข้อความให้ตรงตำแหน่งและทิศทางที่ต้องการ แล้วส่งออกเป็นภาพที่มีพิกเซลเหล่านั้นรวมอยู่
- รูปแบบอาจใช้ SVG, Python, Mermaid หรือเครื่องมืออื่นตามต้องการ
-
เลเยอร์เชิงกำเนิด
- โมเดลสร้างภาพ ให้ผลลัพธ์ด้านภาพที่ยอดเยี่ยม แต่มีความน่าเชื่อถือต่ำในเรื่องคณิตศาสตร์และข้อความ
- ให้นำภาพ underdrawing และข้อความพรอมป์ตใส่ร่วมกันในโมเดลภาพแบบมัลติโหมดที่รับทั้งภาพและข้อความเป็นอินพุตแล้วส่งออกเป็นภาพได้ เช่น Gemini 3.0 Pro
- พรอมป์ตตัวอย่างขั้นที่ 1 คือให้สร้าง SVG ที่จัดวางแผ่นหินก้าว 50 ก้อนเป็นเกลียวด้านในทวนเข็มนาฬิกา และใส่หมายเลขต่อเนื่อง 1 ถึง 50 บนหินแต่ละก้อน
- พรอมป์ตตัวอย่างขั้นที่ 2 คือให้แปลงภาพนั้นเป็นไดโอรามาแบบ claymation โทนภาพถ่าย มุมต่ำเอียงเล็กน้อย โดยมีช็อกโกแลตงานคราฟต์และลูกกวาดวางเป็นเส้นทางเกลียว
-
การทำงานอัตโนมัติและข้อจำกัด
- ให้ Claude Code หรือ Codex ทำแต่ละขั้นตอนแทนได้
- แม้ผลลัพธ์จะดี แต่ก็ไม่ได้สมบูรณ์แบบทุกครั้ง และแม้ในผลลัพธ์สุดท้ายก็ยังมองไม่เห็น “71”
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เป็นเรื่องน่ายินดีที่เราเริ่มเข้าใจลึกขึ้นว่าอะไรคือสิ่งที่ LLM เก่งโดยเนื้อแท้ และอะไรคือสิ่งที่แม้จะไม่ได้แปลว่าเป็นไปไม่ได้ แต่มีโอกาสสำเร็จต่ำเพราะมี ข้อจำกัดเชิงพื้นฐาน
คล้ายกับแนวทางที่ให้มนุษย์กำหนดสถาปัตยกรรมซอฟต์แวร์แล้วให้ LLM เขียนฟังก์ชัน หรือให้มันเขียน SQL query แทนที่จะให้วิเคราะห์ข้อมูลเองทั้งหมด
อยากเห็น กรอบการจัดประเภทงานและงานวิจัย ที่ชัดเจนขึ้นว่างานแบบไหนเหมาะกับ LLM และแบบไหนไม่เหมาะ แม้จะเริ่มพอมีสัญชาตญาณบ้างแล้ว แต่ก็ยังเห็นหลายคนพลาดตรงนี้บ่อยมาก
คือให้มันร่างโครงก่อน แล้วค่อยให้แต่ละฟังก์ชันถูก implement แยกกัน และก็เคยมีโพสต์บล็อกที่ใช้นิยามจากงานแอนิเมชันมาอธิบายแนวทางนี้ขึ้น HN อยู่หลายครั้ง
เมื่อ 2 ปีก่อน งานอย่างการนับตัวอักษรหรือการจัดการหน่วยเสียงยังถูกมองว่าเป็นสิ่งที่ทำไม่ได้เพราะ “ข้อจำกัดเชิงพื้นฐาน” แต่ตอนนี้หลายกรณีกลับทำได้โดยไม่มีเครื่องมือช่วยด้วยซ้ำ
ทุกครั้งที่อ่านพรอมป์ตสำหรับสร้างภาพ ก็มักเห็นรายละเอียดที่เฉพาะเจาะจงมากซึ่งโมเดลเมินไปอย่างชัดเจน
กรณีนี้ก็เหมือนกัน ช็อกโกแลต/ลูกกวาดในภาพสองภาพสุดท้ายไม่ได้ให้ความรู้สึกงานคราฟต์แบบช่างฝีมือเลย แต่กลับดูเหมือน สินค้าผลิตจำนวนมากแบบปลอดเชื้อ มากเกินไป และมุมมองก็ไม่แม่นด้วย
ถ้าโมเดลเมินรายละเอียดส่วนใหญ่ขนาดนั้น ก็สงสัยว่าทำไมต้องเขียนพรอมป์ตยืดยาวขนาดนี้
คำอย่าง rustic, homemade, amateur อาจตรงกับการแท็กมากกว่า
ตอนแรกคิดว่าเป็นเพราะ ทักษะการเขียนพรอมป์ต ของตัวเองไม่ดีพอ แต่พอเริ่มสังเกตความไม่ตรงกันแบบนี้ มันก็เห็นได้ค่อนข้างบ่อย
ถ้าอยากได้ภาพแบบสุดท้ายที่มี “ปุ่ม” เล็ก ๆ เรียงเป็นเกลียว แม้มันจะไม่ได้ดูเหมือนลูกกวาดก็ตาม แต่ต่อให้ใช้ Blender ไม่เก่ง ก็น่าจะทำได้ภายในบ่ายเดียว
ผมเจอเทคนิคง่าย ๆ สำหรับทำให้ได้ ข้อความและตัวเลข จากภาพที่สร้างด้วย AI แบบเสถียร
น่าแปลกที่โมเดลภาพยังไม่ทำแบบนี้กันเองอยู่แล้ว เลยรู้สึกว่ามีประโยชน์มากพอจะแชร์
ผมใช้เทคนิคเดียวกันนี้มาสักพัก โดยใช้แค่ SVG เป็นภาพตั้งต้น และมันทำงานได้ดี
คิดว่าแล็บวิจัยด้านการสร้างภาพน่าจะรับเอาไปใช้ในไม่ช้า
แทนที่จะปล่อยให้ผู้ใช้ให้โมเดลแก้แบบ 0-shot โครงสร้างนี้ช่วยพามันไปสู่คำตอบแบบ 1-shot หรือ k-shot
ผมเคยใช้เทคนิคคล้ายกันแล้วได้ผลดีมาก และเพราะวงการนี้ใหม่มากและเคลื่อนไหวเร็ว จึงยังรู้สึกว่าคำศัพท์ร่วมกันยังมีไม่พอ ดังนั้นบล็อกโพสต์และตัวอย่างแบบนี้จึงมีประโยชน์มาก
แต่ก็เป็นไปได้เหมือนกันว่าปรากฏการณ์นี้อาจถูกชุมชนเล็กกว่าหรือภายใต้ชื่ออื่นสังเกตและทำความเข้าใจไว้แล้ว
นี่ก็แค่ img2img ที่ใช้โค้ดสร้างภาพแรกให้มีโครงสร้างถูกต้องเท่านั้นเอง
ถ้าเคยใช้โมเดลกำเนิดมาตั้งแต่ยุคแรกของ Stable Diffusion นี่ถือเป็นเทคนิคที่พบได้บ่อยและมีประโยชน์มาก คือใช้สเก็ตช์ (SVG, วาดมือ ฯลฯ) เป็น ControlNet ชั่วคราวเพื่อชี้นำเอาต์พุตของโมเดลสร้างภาพ
แต่ก่อนผมก็เคยใช้วิธีคล้ายกันตอนจัดวางภาพ visualization งานสถาปัตยกรรม
ถ้าอยากให้โซฟา เก้าอี้ หรือเฟอร์นิเจอร์อื่นอยู่ตำแหน่งเฉพาะ ก็จะสร้างฉากง่าย ๆ ที่กำหนดตำแหน่ง “ชิ้นส่วนฉาก” หลัก ๆ แบบคร่าว ๆ ด้วยเครื่องมืออย่าง Poser แล้วสร้าง depth map จากตรงนั้น เพื่อนำเข้าโมเดลสร้างภาพอย่าง SDXL ในยุคนั้นเพื่อบังคับการจัดวางวัตถุ
แฮ็กนี้เป็นเทคนิคประเภท “อ้าว ทำไมเราไม่คิดแบบนี้มาก่อน” อย่างชัดเจน
ดีใจที่มีอะไรไว้ลองใช้ครั้งหน้าที่การสร้างภาพออกมาไม่ตรงความคาดหวัง
แค่ตอนนั้นประสิทธิภาพยังไม่ดีเท่าตอนนี้ เลยไม่ค่อยเข้าใจว่าทำไมสิ่งนี้ถึงถูกมองว่าใหม่
ข้อโต้แย้งมาตรฐานคือ: ถ้า LLM ฉลาดจริง ทำไมมันถึงไม่รู้เองว่า กระบวนการ 2 ขั้นตอน นี้จะให้ผลลัพธ์ที่ดีกว่า?
ถ้าจะวางกลยุทธ์ ตรวจผลลัพธ์ แล้วลองใหม่อีกครั้ง ต้องมี agentic process อยู่ด้านบน
Nano Banana กับ gpt-image-2 ดูเหมือนจะมีสิ่งนี้อยู่บ้าง แต่มันก็คล้ายกับความต่างระหว่างให้โมเดลเขียนโค้ดทีเดียวจบ กับให้ agent harness ที่มีเครื่องมือเป็นคนจัดการ
แม้แต่ agent ที่พื้นฐานมาก ๆ ก็ยังสร้างโค้ดได้ดีกว่า ChatGPT แบบเดี่ยว ๆ
วิธีแบบนี้มีมานานแล้ว และคล้ายกับการใช้ depth map หรือ line art เพื่อควบคุม silhouette
ชอบความรู้สึกของบทสรุปที่ว่า “มันใช้ได้ แต่จริง ๆ ก็ไม่เชิง”
มันสะท้อนกระแส LLM/AI สร้างสรรค์ได้ดี คือทุ่มความพยายามซับซ้อนมากเพื่อทำให้ตัวอย่างแคบ ๆ เพียงอย่างเดียวออกมาถูกต้อง ซึ่งดูเหมือนจะเกือบได้ แต่สุดท้ายก็ยังไม่ถึงขั้นใช้ได้จริง
มนุษย์ตรวจได้ง่ายว่าตัวเลขถูกไหม และถ้าผิดก็แค่สร้างภาพใหม่
มัน ง่ายกว่าหลายหลัก เมื่อเทียบกับการสร้างภาพตั้งแต่ต้นโดยไม่มีโมเดล
ผมนึกว่ากับโจทย์คลาสสิกอย่าง “SVG ของนกกระทุงขี่จักรยาน” อาจลองใช้แนวทางกลับกันได้
ถ้าให้มันพ่น SVG ออกมาตรง ๆ คุณภาพก็น่าจะแย่แน่ ๆ
แต่การสร้างภาพนั้นทำ ภาพสมจริง สวย ๆ ได้ง่ายอยู่แล้ว ดังนั้นอาจสร้างภาพก่อน แล้วให้โมเดลไล่ตามภาพนั้นเพื่อทำเป็น SVG ก็อาจเป็นวิธีที่ดีในการได้ SVG นกกระทุงขี่จักรยานที่ใช้ได้
ท้ายที่สุดแล้ว แม้แต่มนุษย์เองก็น้อยคนนักที่จะสร้างงานศิลปะ SVG ด้วยการพิมพ์ตัวเลขล้วน ๆ ลงใน notepad แก่นสำคัญก็ยังอยู่ที่การมองมันเป็นภาพและคิดผ่านภาพนั้น
มันยังดูคล้ายกับวิธีที่มนุษย์พยายามทำสิ่งต่าง ๆ ให้แม่นยำด้วย
ถ้าขอให้ศิลปินวาดก้อนหินจำนวนมากเรียงเป็นวงกลมใหญ่ พร้อมใส่หมายเลขตามลำดับให้ครบในครั้งเดียวโดยไม่มีการแก้หรือสเก็ตช์เลย ก็ไม่แปลกที่จะเกิด ความผิดพลาดในการจัดวาง