Chuyển tới nội dung chính

{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}

Video Ascii

Video ASCII: chuyển đổi video/âm thanh sang ASCII MP4/GIF màu.

Siêu dữ liệu kỹ năng

NguồnĐi kèm (được cài đặt theo mặc định)
Đường dẫn

skills/creative/ascii-video ` | | Nền tảng | Linux, macOS, Windows |

Tham khảo: đầy đủ SKILL.md

thông tin

Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.

Đường ống sản xuất video ASCII

Khi nào nên sử dụng

Sử dụng khi người dùng yêu cầu: video ASCII, video nghệ thuật văn bản, video kiểu terminal, hoạt hình nghệ thuật nhân vật, trực quan hóa văn bản cổ điển, trình hiển thị âm thanh trong ASCII, chuyển đổi video sang nghệ thuật ASCII, hiệu ứng kiểu ma trận hoặc bất kỳ đầu ra ASCII hoạt hình nào.`##Có gì bên trong

Quy trình sản xuất video nghệ thuật ASCII — mọi định dạng. Chuyển đổi đầu vào video/âm thanh/hình ảnh/sáng tạo thành đầu ra video ký tự ASCII có màu (MP4, GIF, chuỗi hình ảnh). Bao gồm: chuyển đổi video sang ASCII, trình hiển thị nhạc phản ứng âm thanh, hoạt hình nghệ thuật ASCII tổng quát, phản ứng video+âm thanh kết hợp, lớp phủ văn bản/lời bài hát, kết xuất terminal thời gian thực.

Tiêu chuẩn sáng tạo

Đây là nghệ thuật thị giác. Ký tự ASCII là phương tiện; rạp chiếu phim là tiêu chuẩn.

Trước khi viết một dòng mã, hãy nêu rõ khái niệm sáng tạo. Tâm trạng là gì? Câu chuyện trực quan này kể về câu chuyện gì? Điều gì khiến dự án NÀY khác biệt với mọi video ASCII khác? Lời nhắc của người dùng là điểm khởi đầu — diễn giải nó với tham vọng sáng tạo chứ không phải phiên âm theo nghĩa đen.

Sự xuất sắc của lần hiển thị đầu tiên là không thể thương lượng. Sản phẩm đầu ra phải nổi bật về mặt hình ảnh mà không cần phải chỉnh sửa nhiều lần. Nếu thứ gì đó trông chung chung, phẳng lặng hoặc giống như "tác phẩm nghệ thuật ASCII do AI tạo ra" thì đó là sai - hãy suy nghĩ lại về ý tưởng sáng tạo trước khi xuất xưởng.

Vượt xa từ vựng tham khảo. Các danh mục hiệu ứng, cài đặt trước bộ đổ bóng và thư viện bảng màu trong tài liệu tham khảo là từ vựng khởi đầu. Đối với mỗi dự án, hãy kết hợp, sửa đổi và phát minh ra các mẫu mới. Danh mục là một bảng màu - bạn viết bức tranh.

Hãy chủ động sáng tạo. Mở rộng vốn từ vựng của kỹ năng khi dự án yêu cầu. Nếu tài liệu tham khảo không có những gì tầm nhìn yêu cầu, hãy xây dựng nó. Bao gồm ít nhất một khoảnh khắc trực quan mà người dùng không yêu cầu nhưng sẽ đánh giá cao — một sự chuyển tiếp, một hiệu ứng, một sự lựa chọn màu sắc làm nổi bật toàn bộ tác phẩm.

Tính thẩm mỹ gắn kết thay vì tính chính xác về mặt kỹ thuật. Tất cả các cảnh trong video phải có cảm giác được kết nối bằng ngôn ngữ hình ảnh thống nhất — nhiệt độ màu chung, bảng màu ký tự liên quan, từ vựng chuyển động nhất quán. Một video đúng về mặt kỹ thuật trong đó mỗi cảnh sử dụng một hiệu ứng ngẫu nhiên khác nhau là một thất bại về mặt thẩm mỹ.

Dày đặc, nhiều lớp, cân nhắc. Mọi khung hình đều đáng xem. Không bao giờ nền đen phẳng. Luôn có thành phần đa lưới. Luôn thay đổi theo từng cảnh. Luôn luôn có chủ ý màu sắc.

Chế độ

Chế độĐầu vàoĐầu raTham khảo
Chuyển video sang ASCIITệp videoGiải trí ASCII của cảnh nguồn

references/inputs.md ` § Lấy mẫu video | | Phản ứng âm thanh | Tệp âm thanh | Hình ảnh sáng tạo được điều khiển bởi các tính năng âm thanh |

references/inputs.md ` § Phân tích âm thanh | | Sáng tạo | Không có (hoặc thông số hạt giống) | Hoạt hình ASCII thủ tục |

references/effects.md ` | | Kết hợp | Video + âm thanh | Video ASCII với lớp phủ phản ứng âm thanh | Cả hai ref đầu vào | | Lời bài hát/văn bản | Âm thanh + văn bản/SRT | Văn bản hẹn giờ với hiệu ứng hình ảnh |

references/inputs.md ` § Văn bản/Lời bài hát | | Tường thuật TTS | Trích dẫn văn bản + API TTS | Lời chứng thực/trích dẫn được tường thuật bằng văn bản được đánh máy |

references/inputs.md ` § Tích hợp TTS |

ngăn xếp

Tập lệnh Python độc lập cho mỗi dự án. Không cần GPU.

LớpCông cụMục đích
Cốt lõiPython 3.10+, NumPyToán học, hoạt động mảng, hiệu ứng vector hóa
Tín hiệuSciPyFFT, phát hiện đỉnh (chế độ âm thanh)
Hình ảnhGối (PIL)Rasterization phông chữ, giải mã khung hình, I/O hình ảnh
Vào/ra videoffmpeg (CLI)Giải mã đầu vào, mã hóa đầu ra, âm thanh mux
Song songđồng thời.futuresN công nhân để kết xuất hàng loạt/CLIp
TTSAPI ElevenLabs (tùy chọn)Tạo CLIp tường thuật
Tùy chọnOpenCVLấy mẫu khung hình video, phát hiện cạnh

Kiến trúc đường ống

Mọi chế độ đều tuân theo cùng một quy trình gồm 6 giai đoạn:

` INPUT → ANALYZE → SCENE_FN → TONEMAP → SHADE → ENCODE

`

  1. INPUT — Tải/giải mã tài liệu nguồn (khung video, mẫu âm thanh, hình ảnh hoặc không có gì)
  2. PHÂN TÍCH — Trích xuất các đặc điểm trên mỗi khung hình (dải âm thanh, độ chói/cạnh video, vectơ chuyển động)
  3. SCENE_FN — Chức năng cảnh hiển thị thành canvas pixel ( `uint8 H,W,3

). Soạn nhiều lưới ký tự thông qua chế độ hòa trộn `_render_vf()

  • pixel. Xem `references/composition.md
  1. TONEMAP — Chuẩn hóa độ sáng thích ứng dựa trên phần trăm. Xem references/composition.md § Bản đồ giai điệu thích ứng
  2. SHADE — Xử lý hậu kỳ thông qua `ShaderChain

`FeedbackBuffer

. Xem `references/shaders.md

  1. ENCODE — Chuyển các khung RGB thô sang ffmpeg để mã hóa H.264/GIF

Hướng sáng tạo

Kích thước thẩm mỹ

| Kích thước | Tùy chọn | Tham khảo | |----------||----------|----------| | Bảng ký tự | Đường dốc mật độ, thành phần khối, ký hiệu, chữ viết (katakana, tiếng Hy Lạp, rune, chữ nổi), dành riêng cho dự án |

architecture.md ` § Bảng màu | | Chiến lược màu sắc | HSV, OKLAB/OKLCH, bảng màu RGB riêng biệt, sự hài hòa được tạo tự động, đơn sắc, nhiệt độ |

architecture.md ` § Hệ màu | | Kết cấu nền | Trường sin, nhiễu fBM, cong vênh miền, voronoi, phản ứng khuếch tán, máy tự động di động, video |

effects.md ` | | Tác dụng chính | Nhẫn, xoắn ốc, đường hầm, xoáy, sóng, giao thoa, cực quang, lửa, SDF, vật hút lạ |

effects.md ` | | Các hạt | Tia lửa, tuyết, mưa, bong bóng, rune, quỹ đạo, lũ bay, người theo dòng chảy, đường mòn |

effects.md ` § Hạt | | Tâm trạng đổ bóng | CRT cổ điển, hiện đại sạch sẽ, nghệ thuật trục trặc, điện ảnh, mơ mộng, công nghiệp, ảo giác |

shaders.md ` | | Mật độ lưới | xs(8px) đến xxl(40px), được trộn trên mỗi lớp |

architecture.md ` § Hệ thống lưới | | Không gian tọa độ | Descartes, cực, lát gạch, xoay, mắt cá, Möbius, biến dạng miền |

effects.md ` § Biến đổi | | Phản hồi | Đường hầm thu phóng, vệt cầu vồng, tiếng vang ma quái, mandala xoay, tiến hóa màu sắc |

composition.md ` § Phản hồi | | Đắp mặt nạ | Hình tròn, hình tròn, độ dốc, khuôn tô văn bản, mống mắt/lau/hòa tan hoạt hình |

composition.md ` § Che phủ | | Chuyển tiếp | Làm mờ chéo, lau, hòa tan, cắt trục trặc, mống mắt, lộ mặt dựa trên mặt nạ |

shaders.md ` § Chuyển tiếp |

Biến thể theo từng phần

Không bao giờ sử dụng cùng một cấu hình cho toàn bộ video. Đối với từng phần/cảnh:

  • Hiệu ứng nền khác nhau (hoặc soạn 2-3)
  • Bảng ký tự khác nhau (phù hợp với tâm trạng)
  • Chiến lược màu sắc khác nhau (hoặc tối thiểu là một màu sắc khác)
  • Cường độ đổ bóng khác nhau (nở nhiều hơn vào lúc cao điểm, nhiều hạt hơn khi yên tĩnh)
  • Các loại hạt khác nhau nếu các hạt đang hoạt động

Phát minh dành riêng cho dự án

Đối với mỗi dự án, hãy phát minh ra ít nhất một trong số:

  • Bảng ký tự tùy chỉnh phù hợp với chủ đề
  • Hiệu ứng nền tùy chỉnh (kết hợp/sửa đổi các khối xây dựng hiện có)
  • Bảng màu tùy chỉnh (bộ RGB riêng biệt phù hợp với thương hiệu/tâm trạng)
  • Một bộ ký tự hạt tùy chỉnh
  • Một khoảnh khắc chuyển cảnh hoặc khoảnh khắc trực quan mới lạ

Đừng chỉ chọn từ danh mục. Danh mục là từ vựng - bạn viết bài thơ.

Quy trình làm việc

Bước 1: Tầm nhìn sáng tạo

Trước bất kỳ mã nào, hãy trình bày rõ khái niệm sáng tạo:

  • Tâm trạng/không khí: Người xem nên cảm thấy gì? Hăng hái, thiền định, hỗn loạn, tao nhã, đáng ngại?
  • Câu chuyện trực quan: Điều gì xảy ra trong suốt thời gian đó? Xây dựng sự căng thẳng? Biến đổi? Hòa tan?
  • Thế giới màu sắc: Ấm áp/mát mẻ? Đơn sắc? Neon? Tông màu đất? Màu sắc chủ đạo là gì?
  • Kết cấu ký tự: Dữ liệu dày đặc? Sao thưa thớt? Chấm hữu cơ? Khối hình học?
  • Điều gì làm cho ĐIỀU NÀY trở nên khác biệt: Điều gì khiến dự án này trở nên độc đáo?
  • Vòng cung cảm xúc: Các cảnh diễn ra như thế nào? Mở đầu bằng năng lượng, xây dựng đến đỉnh điểm, quyết tâm?

Ánh xạ lời nhắc của người dùng tới các lựa chọn mang tính thẩm mỹ. "Trình hiển thị lo-fi thư giãn" yêu cầu mọi thứ khác với "luồng dữ liệu cyberpunk trục trặc".

Bước 2: Thiết kế kỹ thuật

  • Chế độ — chế độ nào trong 6 chế độ trên

  • Độ phân giải — ngang 1920x1080 (mặc định), dọc 1080x1920, vuông 1080x1080 @ 24fps

  • Phát hiện phần cứng — tự động phát hiện lõi/RAM, đặt cấu hình chất lượng. Xem `references/optimization.md

  • Phần — ánh xạ dấu thời gian tới các chức năng của cảnh, mỗi phần có cấu hình hiệu ứng/bảng màu/màu sắc/đổ bóng riêng

  • Định dạng đầu ra — chuỗi MP4 (mặc định), GIF (640x360 @ 15fps), chuỗi PNG

Bước 3: Xây dựng tập lệnh

Tệp Python đơn. Thành phần (có tài liệu tham khảo):1. Phát hiện phần cứng + hồ sơ chất lượng — `references/optimization.md

  1. Trình tải đầu vào — phụ thuộc vào chế độ; `references/inputs.md

  2. Bộ phân tích tính năng — FFT âm thanh, độ chói video hoặc tổng hợp

  3. Lưới + trình kết xuất — lưới đa mật độ với bộ đệm bitmap; `references/architecture.md

  4. Bảng ký tự — nhiều bảng cho mỗi dự án; references/architecture.md § Bảng màu

  5. Hệ màu — HSV + RGB rời rạc + tạo hài hòa; references/architecture.md § Màu sắc

  6. Các hàm cảnh — mỗi hàm trả về `canvas (uint8 H,W,3)

; `references/scenes.md

  1. Tonemap — chuẩn hóa độ sáng thích ứng; `references/composition.md

  2. Đường dẫn đổ bóng — `ShaderChain

`FeedbackBuffer

; `references/shaders.md

  1. Bảng cảnh + bộ điều phối — thời gian → chức năng cảnh + cấu hình; `references/scenes.md

  2. Bộ mã hóa song song — Kết xuất CLIp N-worker với ống ffmpeg

  3. Chính — sắp xếp toàn bộ quy trình

Bước 4: Kiểm định chất lượng

  • Kiểm tra khung hình trước: hiển thị các khung hình đơn lẻ tại các dấu thời gian chính trước khi hiển thị đầy đủ
  • Kiểm tra độ sáng: canvas.mean() > 8 cho tất cả nội dung ASCII. Nếu tối, gamma thấp hơn
  • Sự mạch lạc về mặt hình ảnh: có phải tất cả các cảnh đều có cảm giác như thuộc về cùng một video không?
  • Kiểm tra tầm nhìn sáng tạo: kết quả đầu ra có khớp với ý tưởng ở Bước 1 không? Nếu nó trông chung chung, hãy quay lại

Ghi chú triển khai quan trọng

Độ sáng - Sử dụng

`tonemap()

, Không phải hệ số nhân tuyến tính

Đây là vấn đề hình ảnh số 1. ASCII trên màu đen vốn đã tối. **Không bao giờ sử dụng bộ nhân `canvas * N

** — chúng cắt bớt phần nổi bật. Sử dụng bản đồ giai điệu thích ứng:

def tonemap(canvas, gamma=0.75):
f = canvas.astype(np.float32)
lo, hi = np.percentile(f[::4, ::4], [1, 99.5])
if hi - lo < 10: hi = lo + 10
f = np.CLIp((f - lo) / (hi - lo), 0, 1) ** gamma
return (f * 255).astype(np.uint8)

`
``Đường ống:
`scene_fn() → tonemap() → FeedbackBuffer → ShaderChain → ffmpeg
``Gamma mỗi cảnh: mặc định 0,75, năng lượng mặt trời 0,55, áp phích 0,50, cảnh sáng 0,85. Sử dụng hỗn hợp
`screen
` (không phải
`overlay

) cho các lớp tối.

### Chiều cao ô phông chữ

Gối macOS:
`textbbox()
` trả về chiều cao sai. Sử dụng
`font.getmetrics()

:
`cell_height = ascent + descent

. Xem
`references/troubleshooting.md

.

### ffmpeg Ống bế tắc

Không bao giờ
`stderr=subprocess.pipE
` với ffmpeg chạy dài - bộ đệm lấp đầy ở mức 64KB và bế tắc. Chuyển hướng đến tập tin. Xem
`references/troubleshooting.md

.

### Khả năng tương thích phông chữ

Không phải tất cả các ký tự Unicode đều hiển thị ở tất cả các phông chữ. Xác thực các bảng màu tại init - hiển thị từng char, kiểm tra đầu ra trống. Xem
`references/troubleshooting.md

.

### Kiến trúc trên mỗi CLIp

Đối với các video được phân đoạn (trích dẫn, cảnh, chương), hãy hiển thị từng video dưới dạng tệp CLIp riêng biệt để hiển thị song song và hiển thị lại có chọn lọc. Xem
`references/scenes.md

.

## Mục tiêu hiệu suất

| Thành phần | Ngân sách |
|----------||--------|
| Trích xuất tính năng | 1-5ms |
| Chức năng hiệu ứng | 2-15ms |
| Kết xuất nhân vật | 80-150ms (nút cổ chai) |
| Đường ống đổ bóng | 5-25ms |
| **Tổng cộng** | ~100-200ms/khung hình |

## Tài liệu tham khảo

| Tập tin | Nội dung |
|------|----------|
|
`references/architecture.md
` | Hệ thống lưới, cài đặt trước độ phân giải, chọn phông chữ, bảng ký tự (20+), hệ màu (HSV + OKLAB + RGB rời rạc + tạo hài hòa), trình trợ giúp
`_render_vf()

, lớp GridLayer |
|
`references/composition.md
` | Chế độ hòa trộn pixel (20 chế độ),
`blend_canvas()

, bố cục đa lưới,
`tonemap()
` thích ứng,
`FeedbackBuffer

,
`PixelBlendStack

, hệ thống mặt nạ/stencil |
|
`references/effects.md
` | Các khối xây dựng hiệu ứng: bộ tạo trường giá trị, trường màu sắc, nhiễu/fBM/miền dọc, voronoi, phản ứng khuếch tán, automata tế bào, SDF, bộ thu hút lạ, hệ thống hạt, biến đổi tọa độ, kết hợp thời gian |
|
`references/shaders.md
` |
`ShaderChain

, công văn
`_apply_shader_step()

, danh mục 38 bộ đổ bóng, chia tỷ lệ phản ứng âm thanh, chuyển tiếp, cài đặt trước tông màu, mã hóa định dạng đầu ra, kết xuất terminal |
|
`references/scenes.md
` | Giao thức cảnh, lớp
`Renderer

, bảng
`SCENES

,
`render_CLIp()

, cắt đồng bộ nhịp, kết xuất song song, mẫu thiết kế (phân cấp lớp, vòng cung định hướng, ẩn dụ trực quan, kỹ thuật bố cục), ví dụ cảnh hoàn chỉnh ở mọi mức độ phức tạp, danh sách kiểm tra thiết kế cảnh |
|
`references/inputs.md
` | Phân tích âm thanh (FFT, dải tần, nhịp), lấy mẫu video, chuyển đổi hình ảnh, văn bản/lời bài hát, tích hợp TTS (ElevenLabs, gán giọng nói, trộn âm thanh) |
|
`references/optimization.md
` | Phát hiện phần cứng, hồ sơ chất lượng, mẫu vector, kết xuất song song, quản lý bộ nhớ, ngân sách hiệu suất |
|
`references/troubleshooting.md
` | Bẫy phát sóng NumPy, cạm bẫy ở chế độ hòa trộn, xử lý đa nhiệm/tẩy, chẩn đoán độ sáng, sự cố ffmpeg, sự cố phông chữ, các lỗi phổ biến |

---

## Phân kỳ sáng tạo (chỉ sử dụng khi người dùng yêu cầu đầu ra thử nghiệm/sáng tạo/độc nhất)Nếu người dùng yêu cầu kết quả sáng tạo, mang tính thử nghiệm, gây ngạc nhiên hoặc độc đáo, hãy chọn chiến lược phù hợp nhất và lý giải qua các bước TRƯỚC KHI tạo mã.
- **Kết nối bắt buộc** — khi người dùng muốn có cảm hứng trên nhiều miền ("làm cho nó trông tự nhiên", "thẩm mỹ công nghiệp")

- **Pha trộn khái niệm** — khi người dùng đặt tên cho hai thứ để kết hợp ("đại dương gặp âm nhạc", "không gian + thư pháp")
- **Chiến lược xiên** — khi người dùng cởi mở tối đa ("làm tôi ngạc nhiên", "điều tôi chưa từng thấy")

### Kết nối bắt buộc
1. Chọn một lĩnh vực không liên quan đến mục tiêu trực quan (hệ thống thời tiết, vi sinh học, kiến trúc, động lực học chất lỏng, dệt vải)
2. Liệt kê các yếu tố cấu trúc/hình ảnh cốt lõi của nó (xói mòn → bộc lộ dần dần; nguyên phân → nhân đôi tách đôi; dệt → các mẫu lồng vào nhau)
3. Ánh xạ các phần tử đó vào các ký tự ASCII và các mẫu hoạt hình
4. Tổng hợp - "xói mòn" hoặc "kết tinh" trông như thế nào trong lưới ký tự?

### Pha trộn khái niệm
1. Kể tên hai không gian hình ảnh/khái niệm riêng biệt (ví dụ: sóng biển + bản nhạc)
2. Sự tương ứng của bản đồ (mào = nốt cao, máng = nốt nghỉ, bọt = ngắt âm)
3. Trộn có chọn lọc - giữ những ánh xạ thú vị nhất, loại bỏ những ánh xạ bắt buộc
4. Phát triển các đặc tính nổi bật chỉ tồn tại trong hỗn hợp

### Chiến lược xiên
1. Hãy vẽ một câu: “Hãy tôn trọng lỗi lầm của bạn như một ý định tiềm ẩn” / “Sử dụng một ý tưởng cũ” / “Người bạn thân nhất của bạn sẽ làm gì?” / "Nhấn mạnh những sai sót" / "Đảo ngược nó" / "Chỉ một phần, không phải toàn bộ" / "Đảo ngược"
2. Giải thích chỉ thị đối với thách thức hoạt ảnh ASCII hiện tại
3. Áp dụng hiểu biết sâu sắc về thiết kế trực quan trước khi viết mã