#Flux 图像生成 + GitHub 个人主页:软工初体验全记录
Flux 图像生成 + GitHub 个人主页:软工初体验全记录
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16716 |
| 这个作业的目标 | 1.账号准备:注册 GitHub 和博客园账号,加入班级,关注老师与助教博客,建立课程信息通道2. API 调用与前端交互:调用 Hugging Face Flux 模型生成图像,结合前端实现交互式生成,记录提示词设计思路3. GitHub 个人主页:搭建 Profile README,展示个人信息、技能与三年发展规划4. 技能梳理与自我反思:评估当前能力,设定代码量目标,借助 AI 生成学习指南并分析其合理性 |
| 学号 | 052403108 |
一、huggingface-API 调用:Flux-RealismLora 图像生成
1.1 环境准备
注册 HuggingFace 账号,进入设置页面获取HF_TOKEN(API 密钥);
访问模型仓库:XLabs-AI/flux-RealismLora,同意模型协议;


1.2 完整代码
后端代码 app.py
import os
import io
import base64
from flask import Flask, request, jsonify, render_template
from flask_cors import CORS
from huggingface_hub import InferenceClient
app = Flask(__name__)
CORS(app)
HF_TOKEN = "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"
client = InferenceClient(api_key=HF_TOKEN)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/generate', methods=['POST'])
def generate_image():
try:
data = request.get_json()
prompt = data.get('prompt', '').strip()
if not prompt:
return jsonify({'error': '请输入提示词'}), 400
image = client.text_to_image(
prompt=prompt,
model="black-forest-labs/FLUX.1-dev"
)
buffered = io.BytesIO()
image.save(buffered, format="PNG")
img_base64 = base64.b64encode(buffered.getvalue()).decode('utf-8')
return jsonify({
'success': True,
'image': img_base64
})
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1', port=5000)
前端页面 templates/index.html核心代码
<input type="text" id="promptInput" placeholder="输入提示词...">
<button id="generateBtn" onclick="generate()">生成</button>
<div id="imageContainer"></div>
<div id="status"></div>
<script>
function generate() {
const prompt = document.getElementById('promptInput').value;
document.getElementById('status').textContent = '生成中...';
fetch('/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt })
})
.then(res => res.json())
.then(data => {
if (data.success) {
document.getElementById('imageContainer').innerHTML =
`<img src="data:image/png;base64,${data.image}" style="max-width:100%;max-height:500px;">`;
document.getElementById('status').textContent = '✅ 成功';
} else {
document.getElementById('status').textContent = '❌ ' + data.error;
}
})
.catch(err => {
document.getElementById('status').textContent = '❌ 网络错误';
});
}
</script>

1.3 提示词设计思路与修改过程
为了生成一张 “最贴近真实世界”且富有意境 的图像,我选择了带有自然力量感与人文气息的海岸灯塔场景作为主题,并进行了多轮迭代优化。
第一版(基础场景)
A lighthouse on a cliff at sunset with ocean waves
问题:画面元素过于简单,虽然包含了灯塔、悬崖、海浪和日落,但彼此之间缺乏互动和张力,整体效果更像一张随意的旅游快照,而不是一幅有感染力的作品。
第二版(增加光影与情绪)
A lighthouse on a rocky cliff during a stormy sunset, dark dramatic clouds, waves crashing against rocks, warm glow from the lighthouse against dark sky, melancholic atmosphere, photorealistic

问题:光影和情绪明显改善,冷暖对比开始形成,画面有了一定的戏剧张力。但整体质感仍偏向“好看的画”而非“真实的照片”,细节层次不够丰富,画面深度和摄影感不足。
第三版(最终版,全面丰富)
A lone lighthouse standing on a rocky cliff during a stormy sunset, dramatic clouds, waves crashing against the rocks, warm golden light from the lighthouse contrasting with dark blue sky, melancholic and powerful, photorealistic, highly detailed, natural color palette, 8k, shot on professional camera with deep depth of field

效果:生成的图像如同一幅真实世界中的摄影作品——冷暖光影对比鲜明,海浪的动态与灯塔的静默形成张力,云层层次丰富,画面既写实又富有故事感,完整呈现了“孤独而有力”的情绪内核。
设计思路总结
| 迭代阶段 | 变化方向 | 核心改进 |
|---|---|---|
| 第一版 → 第二版 | 从 "场景" 到 "情绪" | 增加天气戏剧性和初步光影对比,赋予画面情感基调 |
| 第二版 → 第三版 | 从 "情绪" 到 "真实" | 强化光影对抗、细化场景元素、限定摄影风格,从 "好看的画" 升级为 "真实的摄影作品" |
核心经验:从“静态场景” → “天气冲突与光影对比” → “情绪共鸣与极致写实”,通过层层递进,将一张简单的风景照逐步升级为富有故事感和真实感的作品。
1.4 API调用体验与心得
通过本次 Hugging Face API 调用实践,我有以下体会:
- API 集成的便捷性:huggingface_hub 库封装的 InferenceClient 提供了统一的调用接口,只需几行代码就能调用最先进的图像生成模型,极大降低了 AI 应用开发的门槛。
- 提示词工程的重要性:同样的模型,不同的提示词会产生差异巨大的结果。高质量的提示词需要包含明确的主体、丰富的环境描述、精准的光线设定和清晰的风格限定。
- 前后端联调的收获:复习了 Flask 路由与请求处理、图片数据的 base64 编码传输、前端 fetch API 异步请求等关键技术,形成了完整的全栈开发认知。
- 免费额度的局限性:通过第三方提供商托管的模型(如 fal.ai)有独立的免费额度限制,实际调用时需要注意配额管理,必要时需切换模型或等待额度重置。
注意事项:
- Token 不应提交到公开仓库,应使用环境变量管理
- 调用模型前需先在模型页面同意使用协议
- API调用次数有限、响应较慢
- 部分模型通过第三方提供商托管,免费额度独立计算
二、Github 个人主页搭建
两个方案都试做了一下
2.1 创建个人资料自述文件。新建一个名称与GitHub ID相同的仓库,在仓库根目录的README中撰写个人介绍,并将相关截图放入博客



2.2 借助GitHub Pages搭建个人主页,制作内容较为充实的展示页面。

三、随笔

3.1 技能树与自我评估
1.Python 编程:熟练基础语法,能写脚本、做数据可视化;欠缺:大型项目模块化、单元测试。
2.感兴趣方向:前端开发、大数据、AI应用开发
3.欠缺能力:项目架构设计、代码规范、软件测试、工程化开发能力
3.2 代码量统计
目前累计代码量:约2000行
本学期软件工程课程结束目标:累计代码量达到4000~5000行,增加项目类工程代码,而不只是课堂习题。
3.3 课程期待
本课程最期待学习:软件需求分析、项目开发流程、Git 团队协作、软件测试、项目文档撰写。
希望收获:学会工程化开发思维,不再只写一次性 demo;掌握团队项目开发流程,能够完成完整软件项目,养成良好编码习惯。
3.4 AI 生成《软件工程课程学习指南》以及分析
下面这段是Deepseek输出的指南
提示词给 AI:为福州大学软件工程课程大三学生,写一份简要软件工程课程学习指南
软件工程课程学习指南
学习建议
- 课程学习
《软件工程》:不要把它当成“文科”来背概念。结合《构建之法》中的案例去理解敏捷开发、Scrum、PSP等方法论的实际应用场景。建议同步阅读教材之外的行业实践文章。
《面向对象分析与设计》 :重点掌握UML类图、时序图、状态图等建模工具,以及常见设计模式(单例、工厂、观察者等)的适用场景。
《软件质量与测试》 :除了学习理论,建议动手实践JUnit、Selenium等测试工具,理解单元测试、集成测试、自动化测试的区别。
《软件工程实践》 :这是大三含金量最高也最辛苦的课程。务必认真对待每一次作业和团队项目——这是你简历上最能体现工程能力的项目经历。 - 技术方向选择
大三上学期是确定技术方向的关键节点:
后端方向:深入学习Spring Boot/微服务、消息中间件、数据库优化、高并发系统设计。
前端方向:掌握React/Vue等主流框架,理解前后端交互原理。
AI/数据方向:可结合福大软工“软件工程与人工智能交叉融合”的专业特色,学习机器学习基础、大模型应用等。 - 实践与竞赛
福大软工实施“以赛促学”的教学模式,鼓励学生通过竞赛强化创新思维和团队协作能力。建议积极参与:
学科竞赛:如“挑战杯”、“互联网+”、ACM、服务外包创新创业大赛等。
科研实训:关注学院的“青禾计划”,鼓励本科生进实验室开展科研实训。
开源贡献:在GitHub上参与开源项目,积累真实的协作经验。 - 升学与就业准备
福大软工毕业生去向涵盖北大、浙大、中科大等高校深造,以及华为、腾讯、字节跳动等头部企业。大三应开始明确方向:
考研:大三上学期可开始数学、英语的复习,同时确保专业课程不落下。指出软件工程实践课与考研备考可能存在时间冲突,需提前做好时间规划。
就业:开始准备简历,关注暑期实习机会(大三下或暑假是黄金窗口)。
出国:准备语言考试,关注目标院校的申请要求。
三、推荐学习资源
教材:《构建之法——现代软件工程》(邹欣)
在线课程:中国大学MOOC、Coursera上的软件工程相关课程
技术社区:GitHub、Stack Overflow、CSDN
实践平台:LeetCode(算法)、Hugging Face(AI应用)
指南合理性分析
✅ 合理之处
符合培养方案要求:指南紧扣福州大学软件工程专业培养方案中的核心课程设置,涵盖软件工程、面向对象分析与设计、软件质量与测试、软件工程实践等核心课程,与专业培养目标“具备扎实的软件工程领域知识和过硬的专业综合实践能力”一致。
把握大三关键节点:大三确实是专业学习的“分水岭”——前两年侧重基础(数学、编程语言、数据结构),大三进入工程方法与实践,大四则面临升学就业。指南强调“软件工程实践”的重要性,符合课程的实际定位。
兼顾理论与实践:指南既强调课堂理论学习,也突出项目实践、竞赛参与和科研实训,符合福大“产教融合、科教融合”的培养模式。
方向引导务实:针对大三学生面临升学与就业的分岔口,提供了考研、就业、出国三条路径的具体建议,具有可操作性。
⚠️ 需要注意的局限
对我的帮助:可以作为整体学习框架,提醒我不能只专注写代码而忽略软件工程的文档、流程、测试,指导我在后续作业中重视项目规范。
四、作业总结
本次个人作业,完成账号准备、HuggingFace 大模型 API 调用 + 前端交互 Demo,搭建 Github 个人主页,梳理自身技术能力,借助 AI 辅助制定学习路线。本次作业让我体会到软件工程不仅是写代码,文档记录、版本管理、需求和提示词设计都是工程实践的重要一环,为后续课程团队项目打下基础。
浙公网安备 33010602011771号