Interactive Curve Designer ๐จ
Draw your ControlNet strength curve with an actual mouse
- formula
- preview
- description
Every other curve tool in this pack makes you describe the shape - dropdowns, sliders, math formulas. This one lets you just draw it. A canvas appears on the node, you click and drag to plot control points, and the curve your mouse traces becomes a formula string plus a preview image, ready to feed into the scheduler. If you've ever been annoyed at translating "I want it to dip around 60% then spike" into a curve_param value, this is the node you've been looking for.
How it works
The node ships a JavaScript canvas (in web/interactive_curve_designer.js). You place and drag points on a 0โ1 grid; the frontend writes the points into the points_data input as JSON. The backend takes those points, interpolates them into a smooth curve using your chosen interpolation_method - linear, cubic_spline, polynomial, or hermite - and produces the outputs. resolution sets how many samples the curve gets (10โ500), and normalize rescales the result to 0โ1, which you generally want on.
The points_data field has a sensible default (a diagonal line from top-left to bottom-right), so the node does something reasonable even before you touch the canvas. The default interpolation is cubic_spline, which is the right choice for hand-drawn points - linear will faithfully reproduce your shaky hand as straight segments.
Outputs are formula (the generated math string, for the Advanced scheduler's custom_formula), preview (the drawn curve as an IMAGE), and description (text). The formula auto-generates from your drawing, which is the neat party trick - draw a bump, and the node figures out an expression that approximates it.
Why it beats the alternatives
It's the fastest path from "a shape I have in my head" to "a keyframe schedule." With presets you're limited to what the author thought of; with the Formula Builder you're limited to its nine patterns; here you can trace literally anything, including asymmetric shapes no clean function describes. The README's own recommendation for beginners is to start here, and for once the recommendation is right.
Installing it
Same pack, and the canvas only works if the JavaScript loads:
cd ComfyUI/custom_nodes
git clone https://github.com/diffussy69/comfyui-curved_weight_schedule
pip install matplotlib pillow numpy torch scipy
Restart, then hard-refresh (Ctrl+Shift+F5) - a stale browser tab is the most common reason the canvas doesn't appear. If the node still shows a bare field, the extension didn't load; check the console.
Where people get burned
The points_data string is auto-updated by the canvas, so don't hand-edit it mid-session - the canvas overwrites your edits on the next drag. And remember the outputs are a formula and a picture, not keyframes. You still have to feed the formula into the Advanced Curved ControlNet Scheduler's custom_formula (or paste it into the plain scheduler's curve machinery) for it to affect anything. The drawing is the fun part; the wiring is the job.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| points_data | STRING | [{"x":0,"y":1},{"x":0.25,"y":0.75},{"x":0.5,"y":0.5},{"x":0.75,"y":0.25},{"x":1,"y":0}] | JSON data from canvas (auto-updated) |
| interpolation_method | COMBO | cubic_spline | Curve interpolation method |
| resolution | INT | 10010โ500 | Curve resolution |
| normalize | BOOLEAN | true | Normalize output to 0-1 range |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| formula | STRING | โ |
| preview | IMAGE | โ |
| description | STRING | โ |