Skip to content

How to Pin a Course Environment: Tool Versions, Images and Assignment Bundles ​

We · November 2026

This is the fifth article in the "AI Learning Environment" series, written for curriculum teams and instructors. The previous four stand with students and admissions: Check This Table Before Enrollment covers what machine each of six tracks needs, Five Things That Stall Week One covers why a finished install still doesn't work, From Script to Final Cut splits one comic-drama into six stops, and How to Explain Computer Requirements Before Enrollment has admissions finish the sentence before taking payment. This article takes the next link in the chain: inside an institution, who sets this information, how often it moves, and what gets tested before anyone touches it.

This article is method only. It evaluates no institution: no names, no comparisons, no pricing, and no business or legal advice. The version and configuration statements come from the system requirements carried on app detail pages, the verbatim hardware requirements on our workflow pages, and the PC client documentation, compiled in November 2026 — a reference, not a guarantee.


1. Which problem this article solves ​

Start with the most common sentence in any course group: "Teacher, what mine shows doesn't match yours."

Public complaint platforms carry consumer reports of exactly this: the course was recorded in advance, the software delivered later looks a little different from the interface in the video, students can't match the clicks, and asking doesn't resolve it. We treat that as a process problem rather than an attitude problem, for a plain reason: tools update monthly, course videos get re-recorded quarterly, and the two are bound to drift apart.

What version pinning does is turn three things into one: what the teacher demos in class, what is installed on the student's machine, and what the teaching assistant sees when a question arrives. Let one of the three drift and support shifts from "how do I do this step" to "why is yours different from mine". The second question involves no technology at all and consumes the most teaching hours.

This article won't repeat earlier ones. How to read an error, and how four version layers fall out of line, are covered in section four of article two; what's added here is who should have written those four layers into a document before the course opens. Building the lab, batch deployment and support rotas belong to academic operations and IT, and are covered in article six. How far non-NVIDIA cards get is left to the later article "It Is Not NVIDIA or Nothing" — everything in this article holds on the NVIDIA line only.


2. "Pinning the version" really means five things written down ​

One sentence like "we use ComfyUI" isn't enough, because there are five separate things that deserve to be called a version. The table below can be copied straight into a pinning record.

What to write downHow people usually say itWho changes itWhat students see when it changesWhat to copy when pinning
① The app itself"We use ComfyUI"Upstream, weeklyMenu locations and button names moveThe system requirements from the detail page, verbatim, with the date you copied it
② The runtime environment profile"I installed ComfyUI from the client"The institution, or the student choosingStartup is fast or slow; the image result is the sameThe four environment tiers in the client documentation (the default being, say, Torch 2.7.1)
③ Custom nodes"The plugin the teacher sent"The author of each node packNodes go red, dependencies missing, old plugins error outrightThe node list on the workflow page, copied by registry ID
④ Model files"Remember to download the model"Prepared by the institutionSame model, different quantization tier — VRAM and file size both moveThe file names, sizes and target directories in the model package listed on the workflow page
⑤ Interface evidence in the coursewareScreenshots, screen recordings, parameter tablesOnly the institution can change these"I can't find that button from the video"The capture date of every screenshot, plus which version it corresponds to

Two of the five rows are the most overlooked and the most valuable.

Row two: switching environment changes speed, not result. Our page Deploying ComfyUI with One Click: Choosing the Right Runtime Environment answers two questions. First, image quality is identical across the four environments — the profile only governs speed, GPU temperature and VRAM use, not whether the output is right. Second, if the current environment runs steadily without errors, don't switch it on purpose; day to day there is no functional difference. Put those two sentences into the course description and you remove a whole class of suspicion: "the teacher's torch is newer than mine, so am I doing it wrong?" The only cost is that switching environments re-checks dependencies and takes time, so fixing one tier in the assignment bundle beats letting the whole class try all four.

Row five can only be pinned by the institution. A stale screenshot isn't a software problem, it's a courseware problem — but it happens to be the first thing students notice and the one they report with feeling. "How far this machine gets" depends on the machine; "whether it matches the click the teacher made" depends entirely on whether you dated your screenshots. In a group chat those two look identical, and they get fixed in completely different places.


3. Why it always drifts: three kinds of change, three ways to handle them ​

Kind of changeWhat it isHow oftenWhat it affectsWho handles it
InterfaceA menu renamed, a button moved, a node default changedFollows upstream, weekly or monthlyThe experience of following the classCurriculum adds a mapping table; no re-recording needed
CapabilityA new model or new method arrives, so more things are possibleQuarterlyHow far an assignment can goA scheduling decision about whether to add a lesson
EnvironmentA dependency generation shift (Python, PyTorch and CUDA move together), or support for a new GPU architectureA few times a yearWhether it starts at allUpdate per the strictness chosen in section four, validated on a test machine first

Two reminders.

Don't move environment and nodes in the same change. The maintenance advice in the same client documentation states that the two highest environment tiers need a current graphics driver or CUDA may fail to come up, and that the newer the environment, the likelier a plugin last updated before 2024 will error — when loading fails, look first at the old plugins in custom_nodes.

The teacher's demo machine should match the assignment bundle that went out, not the newest release. This comes from watching our own support traffic, not from inferring it out of complaints: instructors like to be current, they install a new environment, get one run working and record against it, while students still hold the bundle from six months ago. The two produce different error text, the assistant answers from the teacher's machine, and the student ends up more confused than before.

One more word on the capability row. Whether something new enters the course is a scheduling decision and has nothing to do with "the environment doesn't match"; that content itself was covered stop by stop in article three, so it isn't repeated here. Mixing them into one to-do list is how institutions end up with an impossible requirement: "re-record the entire course every term".


4. How tight to lock: three approaches, decided by one question ​

ApproachWhat gets lockedWhich courses it suitsWhat you maintain day to dayWhat you miss
Loose: the app onlyApp name + the detail page's system requirements + the date you copied themTrial classes, one-off workshops, concept-first coursesCopy it once a termEnvironments and plugins get negotiated live; when something stalls nobody can localize it
Medium: environment and pluginsThe loose set + one fixed runtime tier + the node list this course usesRegular courses with continuous assignments — the common caseBefore each intake, check the node list still installsNew models don't enter the course automatically; curriculum decides
Tight: down to filesThe medium set + model file names, sizes and directories + the workflow file + a date on every screenshotLong courses, bootcamps, cohorts that submit or are assessed workChange the version number and date on every update; keep old bundlesThe most labour; if you fall behind, students feel the class teaches last generation

Which one to use comes down to one question: does this course hand in assignments. If not, loose is enough. If yes, use medium. If the work goes out publicly or gets assessed, or students must train a model on their own material, use tight.

Training-type courses add one row: a file list. Training apps usually state their threshold in its own sentence on the detail page — Kohya-ss, for example, states Windows 10/11 64-bit, NVIDIA with 8GB+ VRAM and 32GB RAM advised. That sentence is a different question from "can the software open", and it should be archived together with the version.

One honest sentence up front: none of these three approaches guarantees anything will run. What pinning buys is the ability to say, when something breaks, exactly which setup this cohort uses. It will not turn a 6GB-VRAM machine into one that runs the video tier — that's what article one answers — and it is no substitute for a downgrade plan, which is column six of article four.


5. Three carriers: lab image, environment package, assignment bundle, each covering one stretch ​

Once pinned, it has to become something copyable, or it lives only on the instructor's laptop. Only three things are copyable, and each cures a different kind of mismatch.

CarrierWhat it genuinely solvesWhat it can't solveThe three mistakes that happen most when copying it
Lab imageA row of machines identical, and restorable when brokenStudents' own machines, homework done at home, Mac studentsThe environment inside the image isn't the one the teacher demos; after a restore the model directory didn't come back; the external drive wasn't included in the image
Environment package (what students install)It installs, which removes the most support-consuming part of week oneInstalled but not the version taught; machine changes, reinstalls, moved directoriesHard-coded paths and drive letters; data placed in a folder with Chinese characters or under cloud sync; the wrong disk format chosen
Assignment bundle (the small set shipped with homework)It matches: which clicks, which files, and whether the result counts as passingNothing, when the environment won't installShipping only the workflow, with no node list, no model list, and no version number or date

These aren't three rungs to climb; three problems need three carriers to catch them. Images alone control the several dozen lab machines and not the laptop in the dorm — and the homework all happens on the dorm laptop. Environment packages alone work well in year one, and in year two, once upstream redesigns, "I installed exactly what the teacher sent but the interface is different" starts appearing. The assignment bundle is the cheapest of the three: it touches no software and builds no image — one page and two files, and it catches precisely the two categories of change that hurt the experience most.

For the lab layer itself — how to build images, how to batch deploy and restore — the Vocational College AI Lab Construction Guide and the AI Teaching Environment Selection Guide cover it thoroughly, so it isn't repeated here. For day-to-day maintenance one thing is worth flagging: the image's restore point has to line up with the assignment bundle's version. If a restore puts the machine back six months and the bundle says this term, the group chat ends up running two accounts of the truth at once.

The external-drive cell needs stating plainly, because it gets misunderstood. Putting apps and models on an external drive is standard practice and nothing to avoid — models run to tens of gigabytes and an internal disk fills fast. What to choose is the format: exFAT is convenient for shuttling assets between Windows and Mac, but if an app is installed and run from the drive long-term, don't use exFAT. The example in article two applies: the drive clearly had room, yet the install script reported No space left on device, and because these installs pull code from upstream with git, on exFAT the very first step fails. To run long-term off a portable drive, use NTFS on Windows and APFS on Mac — the same recommendation the SSD Formatting Guide makes for the "AI software and model storage" case.

One more cell has to be named: packaging model files and sending them to students is a license question, not an environment question. That layer is for the institution's legal and curriculum teams to confirm; we don't draw legal conclusions for institutions inside course material, and the per-item statements live in Model Licenses Explained. This article raises it and doesn't expand.

A last line for internal use, and it can be copied as a sentence pattern — how we draw the line "up to which layer does an update follow". The After-Sales Notice for Installation Services states: the one-click install build is made against the app versions at a particular point in time; during maintenance, official minor updates are handled by updating on the original app detail page; when a major iteration or architecture change requires redoing the work, a separate fee may apply. The point isn't the charge — it's that it states which layer it follows up to. When an institution tells a student "we keep the environment updated" and never adds "up to this layer", that sentence will be heard by mid-term as "everything on my machine should be new".


6. Six things in an assignment bundle, one test for each ​

Every row asks the same question: can a student open and check it themselves, and can a teaching assistant reproduce from it.

#What goes inWhere to get itWhy it can't be dropped
①Version number and date copiedA screenshot of the app's About page, plus the system-requirement sentences from the detail pageWithout a date, the phrase "our version" cannot be checked
②The workflow file used for this exerciseThe client's run window has a shortcut to the workflow-file directory; take it from thereIt's the only way to replay "the exact click made in class"
③Model file listThe workflow page's model package lists file names, sizes and target directories; copy each oneWriting only "download model X" leaves students trying and retrying between same-named tiers
④Custom node listThe workflow page lists node names and registry IDs; a single video workflow often pulls from several node packsOnly the registry ID is unique — display names collide across different packs
⑤Input conventionsSet by the institution: how assets are named, what size, what length, which directoryWith loose conventions, one failure can equally be "machine too weak" or "wrong file fed in"
⑥The acceptance criteria, and the machines known to failWrite what's checkable: what the output is, where it lands, and which tier we could not passPutting "performance is limited" here beats replying "send a screenshot" ten times in the group

Row ① deserves honesty: not every app detail page carries a version number, and our own catalog hasn't finished adding them either. So the basis for pinning rests on three things: the date copied, the verbatim detail-page text, and a screenshot of the app's About page. That is exactly why row ⑥ exists — when the statement is incomplete, writing plainly what is known not to work beats supplying a flattering number.

Row ② is the most valuable, because a workflow is itself a file. Local AI Images and Video: Why ComfyUI Keeps Coming Up makes the case: model files can be carried between programs, while a workflow file records "how you intended to do this thing" — it can be handed to a colleague and re-run unchanged on a different machine. For an institution that's the cheapest way to store a course asset: one exercise, one workflow file, which costs less than a screen recording and travels with the student.

Rows ③ and ④ need no invented format; the pages already have it. The workflow page for Wan2.2 Animate 14B replacement mode GGUF lists its custom nodes by node pack (video helpers, KJ nodes, the WanVideo wrapper, and so on) and lists model files by directory with names and sizes. The hardware requirement on the LTX-2 text-to-video fp4 quantized tier reads, verbatim: NVIDIA cards only, Blackwell or newer architecture, at least 16GB of VRAM, and ComfyUI must use torch 2.8.0 or above. Copy those into the bundle. They are both your locked list and the evidence you use to explain to a student why their machine can't do it.


7. When an update is actually due: four moments ​

After pinning, the hard part is restraint. The workable practice is to schedule updates at only four moments and leave everything else alone by default.

MomentWhat to doWhat not to do
Pinning before a course opensWrite the assignment bundle at the strictness chosen in section four; put the teacher's demo machine on that same versionSwitching environment profile the week before because it's "a good chance to upgrade"
Mid-termNothing; only maintain the interface mapping tableFolding a new model or new workflow into a class that is running
Before recording a new courseDecide whether the new method enters the course; first run the common workflows on a test machineTrying and recording at the same time on the teacher's everyday machine
Maintaining an old cohortArchive the previous bundle, answer only the differences, don't re-record the courseAnswering an old cohort's error with the newest environment

"Nothing mid-term" has a basis. What the client documentation tells users is two sentences: if it runs steadily, don't switch on purpose, and switching re-checks dependencies which costs time; Python and CUDA upgrade together, some earlier custom nodes may be briefly incompatible, so validate your workflows in a test environment first and only then return to daily use (see Deploying ComfyUI with One Click: Choosing the Right Runtime Environment). Translated into a curriculum process that's three rules: change one layer at a time; before changing it, run the class's workflows on a test machine; after changing it, update the version number and the date.

The fourth rule is how it gets communicated. After a change, publish "what changed and what didn't", and state clearly which machine tier this entry does not apply to. Our own announcement shows the pattern — Three Lite Voice AI Apps Are Live doesn't just say "three new apps shipped"; it lists which features are kept and which aren't, one by one. An institution issuing a course update note can reuse the same structure: what was added / does the previous version still work / which tier fails this time / what the student needs to do (usually nothing). Drop the second and third lines and old cohorts read an update notice as "my machine is obsolete".


8. When a returning student says "the interface looks different", three people need three answers ​

Who the student isWhat they're actually askingDon't sayDo say
Still following the courseHow do I make today's lesson work"Try restarting" / "your version's too old""Follow the set in the assignment bundle; that button in the video has been renamed — it's row three of the mapping table"
Finished the course, continuing aloneShould I reinstall, and can I use the new thing"Everyone's on the new version now""Your version still works. The new method lists its VRAM requirement on the detail page — check it against your machine first; if you don't meet it, keep going the old way"
Newly enrolled on the new versionAm I about to learn something outdated"We keep the course updated""This cohort uses this set; the version number and date are on the first line of the assignment bundle. Last cohort's material still comes with it; where the two differ, this cohort's is authoritative and we publish the differences in a table"

One thing deserves separate memorizing: an interface change does not justify re-recording. A three-column mapping table — position in the video, current name, one-line note — takes half an hour; re-recording one lesson takes two days. Only capability changes justify adding a new lesson; environment changes require no re-recording at all, only the version number and file list inside the assignment bundle.

Two sentences are worth deciding in advance never to write. One is "our environment is always the latest": the tool ecosystem changes monthly, so it can't be honored and only digs a hole for support three months out. The other is "using the newest version guarantees a good result": there is no such equality between version and learning outcome. The closing line of article three holds here too — version and configuration are entry conditions only; the work itself comes from script, storyboard, pacing and everything outside the toolset.


9. Four signals that it's time to keep a pinning record ​

If these appear in your group chat, what you're short of isn't support staff — it's a pinning record. Each one has a cheap fix.

SignalWhat it meansThe cheap fix
"Mine looks different" recurs in the groupInterface changes have no mapping table, so support is guessing from screenshotsBuild the three-column table and attach it to the pre-course page
Assistants use different environment tiersNothing locks environment or plugins, so one question gets two answersFix one tier for teaching and keep one separate machine for testing
The assignment bundle circulates in group files and chat historyVersions are scattered across three months of messages and nobody finds the original listOne fixed location per cohort; archive old bundles instead of deleting them
Nobody can say which version the last cohort usedCourse assets can't be inherited; changing instructor means doing it againStart with the loosest tier: just one page of "app name + detail-page text + date"

The last of the four costs the most people and pays the most: it moves environment knowledge off a person and onto a file. A course that survives an instructor change does so because of that page, not because someone remembers which node pack installed which package.


10. Three sentences to carry away ​

What you write down isn't one version number; it's five things: the app itself, the runtime environment profile, custom nodes, model files, and the capture date on courseware screenshots. The first two are stated on the app page, the third and fourth on the workflow page, and the fifth only the institution can supply.

The three carriers each cover one stretch: the image buys consistency, the environment package buys installability, the assignment bundle buys matching. Buying the most expensive one doesn't give you all three stretches — and the assignment bundle happens to be the cheapest of the three.

Updates are the exception, not the default: change one layer at a time, run the class's workflows on a test machine first, update the version number and date afterwards, and note which machine tier failed this time.

The payoff of pinning isn't a faster install; it's being able to say the sentence. "This cohort uses this set" is checkable; "we keep the environment updated" is not.


Disclaimer: The version and configuration statements in this article come from the system requirements carried on app detail pages, the verbatim hardware requirements on our workflow pages, and the PC client documentation, compiled by us in November 2026. Software, models and custom nodes update weekly or monthly, and requirements and file lists may change; the figures and wording here are a reference for judgment, not a guarantee that any app or course will run or deliver on your device. This article refers to and evaluates no specific institution or course; the parts describing industry phenomena are drawn from consumer reports on public complaint platforms and illustrate categories of problem only. Licensing and authorization matters are flagged in this article and deliberately not expanded.